Postagens

Mostrando postagens de 2015

Comando Bimanual com ARDUINO

Comando bimanual feito com arduino para ser utilizado em prensas, guilhotinas, rebitadeiras, dobradeiras, etc...
o programa consiste em monitorar dois botoes e ligar uma saida em caso de acionamento simultaneo e em até 0,5 segundos de diferença, em caso de desacionamento de um dos botões a saida desliga ou em caso de ser acionado com uma diferença maior que 0,5 segundos a saida não aciona.
o programa é descrito abaixo:

#define botao1 2 #define botao2 3 #define saida 4
boolean aguarda_botao1 = false; boolean aguarda_botao2 = false;
byte estado_botao1 = 0; byte estado_botao2 = 0; byte ultimo_estado_botao1 = 0; byte ultimo_estado_botao2 = 0;
long unsigned int tempo1 = 0; long unsigned int tempo2 = 0;

void setup(){   Serial.begin(9600);   Serial.println("Start");
  pinMode(botao1,INPUT_PULLUP);   pinMode(botao2,INPUT_PULLUP);   pinMode(saida,OUTPUT);
  estado_botao1 = HIGH;   ultimo_estado_botao1 = HIGH;

Arduino, gravando e lendo eeprom, numero INT

Imagem
Galera!
procurei na net e demorei a encontrar, quando encontrei modifiquei conforme precisava e consegui satisfazer as minhas necessidades.
Então, eu precisava gravar um numero inteiro na EEPROM do arduino porém a eeprom grava apenas números de 0 a 255 ou seja um numero inteiro com valor de 12345 por exemplo, não cabe em apenas um endereço portanto devemos quebrar o numero em dois e salvar cada parte em um endereço.
GRAVAÇÃO
1º - vamos quebrar a primeira parte do numero dividindo-o por 256.
int numero = 12345; int parte1 = numero / 256;  //parte1 um vai receber apenas a parte inteira, ou seja, 48
2º - vamos pegar a segunda parte do numero (ou o resto) com o operador % (mod)
int parte2 = numero % 256;  //parte2 vai receber apenas o resto da divisão, ou seja, 57
3º - agora podemos gravar cada parte em um endereço pois são menores que 255
// EEPROM.write(endereço,valor) EEPROM.write(0,parte1);   EEPROM.write(1,parte2);  
LEITURA
A leitura é bem mais simples, consiste em pegar as duas part…