Pessoal,

Sou novo por aqui e tenho o seguinte o problema que gostaria da opinião dos experts:

Tenho um projeto em Arduino UNO que le pulsos de um sensor e envia de 1 em 1 minuto para a serial. No micro, fiz um software em Delphi 7 que le a serial e processa a informação recebida. Isso está funcionando perfeitamente. Agora, tenho a seguinte demanda: Enviar estes pulsos por GPRS e protocolo HTTP. Comprei um shield Sim900 e pesquisando na Internet, consegui numa boa enviar os dados para um servidor, onde um programa em PHP alimenta uma base de dados em PostgreSQL.  

Minha dificuldade é a seguinte: A inicialização, transmissão e encerramento do processo do GPRS depende de espera pelas respostas dos comandos AT, o que nunca é menor que dez segundos. Ocorre que os meus pulsos acontecem de um em um segundo e se eu desvio o processamento para transmitir os dados, perco os pulsos que chegam pelas portas.

Pensei em colocar dois ATMega, um para cada função. Tentei achar na internet exemplos de processamento Thread, etc. mas nada me satisfez.

Agradeço qualquer ajuda. 

Zé Roberto

Exibições: 456

Responder esta

Respostas a este tópico

Eu fiz isso, uso I2C para comunicar dois ATMEGA, um faz a leitura de um sensor de fluxo de água, e e outro faz os outros tratamentos, o que faz as leituras é um ATMEGA8, mas se for fazer somente isso, acho que um ATTINY25 dá conta do recado, usei o ATMEGA8 pois era o que eu tinha disponível.

Hoje estou usando um ATMEGA8 para controlar um display 5110 e comunico via I2C com um cabo de 6m de distância.

Creio que essa seja a opção. Obrigado pela dica

Uma interrupção de timer nao resolve seu problema ? Contando as interrupcoes vc chega em intervalos de 1 min e gera o pulso via interrupcao. O resto faz no principal.

Eduardo, Obrigado pela dica, mas acho que a opção do I2C, será melhor, pois eu tenho sete geradores de pulsos ligados cada um em uma porta logica do Arduino e cada um com frequências diferentes. Eu acho que não será facil fazer isso com timer sem perder nenhum pulso.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço