fazer tudo funcionar, mas tem um probleminha: coloquei delay de 1000 milisegundos para o contador do display, porem, quando ele inicia a contagem, eu não posso fazer mais nada até ele acabar de contar, eu fiz algo parecido com isso:
void loop(){ btestado = digitalRead(btcont);if (btestado == LOW) {
lcd();}
void lcd1() {digitalWrite (41, 0);digitalWrite (43, 0);digitalWrite (45, 0);digitalWrite (47, 1);digitalWrite (49, 1);digitalWrite (51, 0);digitalWrite (53, 0); //9delay (1000);digitalWrite (41, 0);digitalWrite (43, 0);digitalWrite (45, 0);digitalWrite (47, 0);digitalWrite (49, 0);digitalWrite (51, 0);digitalWrite (53, 0); //8delay (1000);digitalWrite (41, 0);digitalWrite (43, 0);digitalWrite (45, 0);digitalWrite (47, 1);digitalWrite (49, 1);digitalWrite (51, 1);digitalWrite (53, 1); //7delay (1000);digitalWrite (41, 1);digitalWrite (43, 1);digitalWrite (45, 0);digitalWrite (47, 0);digitalWrite (49, 0);digitalWrite (51, 0);digitalWrite (53, 0); //6delay (1000); .....e por aí vai até 0
O sistema fica parado até que chegue ao zero e finalize o ultimo delay de 1 segundo. Como faço para que isso não aconteça?
Muito obrigado.…
Adicionado por Moacir Junior ao 15:46 em 11 junho 2012
maior prazer. Segue abaixo como ficou:
#include <SoftwareSerial.h> //Inlcui a biblioteca SoftwareSerial.h
#define RxD 0 //Define RxD como 0#define TxD 1 //Define TxD como 1
#define RELE 1 4#define RELE 2 5 #define RELE 3 6#define RELE 4 7
SoftwareSerial blueToothSerial(RxD,TxD); //Instância a biblioteca SoftwareSerial.h
void setup(){pinMode(4, OUTPUT); //Configura o pino 4 como saídapinMode(5, OUTPUT);//Configura o pino 5 como saídapinMode(6, OUTPUT);//Configura o pino 6 como saídapinMode(7, OUTPUT);//Configura o pino 7 como saída
parear_dispositivo(); //Executa a função para parear o dispositivo}void loop(){char letra; //Variável char para armazenar o caractere recebidoif(blueToothSerial.available()) //Se algo for recebido pela serial do módulo bluetooth{letra = blueToothSerial.read(); //Armazena o caractere recebido na variável letraif(letra == 'A') {digitalWrite(4, HIGH); //Se o caractere recebido for a letra A, liga o LED Amarelodelay(2000);digitalWrite(4, LOW);}// if(letra == 'a') // não vou usar{digitalWrite(4, LOW); //Senão se o caractere recebido for a letra a, desliga o LED Amarelo }if(letra == 'B') {digitalWrite(5, HIGH);//Senão se o caractere recebido for a letra B, liga o LED Vermelhodelay (2000);digitalWrite(5, LOW);}//if(letra == 'b')//não vou usar{// digitalWrite(5, LOW); //Senão se o caractere recebido for a letra b, delisga o LED Vermelho} if(letra == 'C') {digitalWrite(6, HIGH); //Senão se o caractere recebido for a letra C, liga a Lâmpada}if(letra == 'c') {digitalWrite(6, LOW); //Senão se o caractere recebido for a letra c, desliga a Lâmpada}if(letra == 'D') {
digitalWrite(7, HIGH);delay(2000);digitalWrite(7, LOW); }// if(letra == 'd'){//digitalWrite(7, LOW); //(não vou usar} }}void parear_dispositivo(){blueToothSerial.begin(9600); // Configura o baud rate do bluetooth como 9600blueToothSerial.print("\r\n+STWMOD=0\r\n"); // Configura o módulo bluetooth para trabalhar como slaveblueToothSerial.print("\r\n+STNA=SeedBTShield\r\n"); // Configura o nome do disopsitivo bluetoothblueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permite que outros dispositivos encontrem o módulo bluetoothblueToothSerial.print("\r\n+STAUTO=0\r\n"); // Desabilita a auto conexãodelay(2000); // Aguarda 2 segundosblueToothSerial.print("\r\n+INQ=1\r\n"); // Habilita modo de paridadedelay(2000); // Aguarda 2 segundosblueToothSerial.flush(); // Dá um flush na serial do módulo bluetooth}…
Adicionado por Rodney Hertz ao 21:42 em 24 abril 2015
postar um sketch reduzido para facilitar a explicação:
long valor;void setup(){ Serial.begin(9600); Serial.println(" Digite um valor : "); // Debug}
void loop(){ if (Serial.available() > 0) { Serial.print(" Serial : "); // Debug Serial.println(Serial.available()); // Debug valor = Serial.parseInt(); Serial.print(" valor : "); Serial.println(valor); // Debug Serial.println(); // Debug }}
na tela da serial após digitar um valor aparece:
Digite um valor : (digitei o valor 7)
Serial : 1 <-------- valor : 7
Serial : 1 <-------- valor : 0
Porque encontrou o valor "1" duas vezes ao verificar serial.available() ?
A função Serial.parseInt(); não zera o available
Rui…
Adicionado por mineirin RV ao 16:52 em 27 março 2015
m C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/CMSIS/Device/ATMEL/sam3xa/include/sam3x8e.h:260:0, from C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/CMSIS/Device/ATMEL/sam3xa/include/sam3xa.h:44, from C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/CMSIS/Device/ATMEL/sam3.h:59, from C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/CMSIS/Device/ATMEL/sam.h:198, from C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/libsam/include/../chip.h:25, from C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/libsam/include/twi.h:44, from C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:25, from sketch_nov11a.ino:5:C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/CMSIS/CMSIS/Include/core_cm3.h:868:46: error: expected ')' before '*' token #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ ^sketch_nov11a.ino:6:11: note: in expansion of macro 'MPU'C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/CMSIS/CMSIS/Include/core_cm3.h:868:46: error: expected ')' before '*' token #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ ^sketch_nov11a.ino:6:11: note: in expansion of macro 'MPU'sketch_nov11a.ino: In function 'void setup()':sketch_nov11a.ino:10:29: error: call of overloaded 'beginTransmission(MPU_Type*)' is ambiguoussketch_nov11a.ino:10:29: note: candidates are:In file included from sketch_nov11a.ino:5:0:C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:39:7: note: void TwoWire::beginTransmission(uint8_t) <near match> void beginTransmission(uint8_t); ^C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:39:7: note: no known conversion for argument 1 from 'MPU_Type*' to 'uint8_t {aka unsigned char}'C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:40:7: note: void TwoWire::beginTransmission(int) <near match> void beginTransmission(int); ^C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:40:7: note: no known conversion for argument 1 from 'MPU_Type*' to 'int'sketch_nov11a.ino: In function 'void loop()':sketch_nov11a.ino:17:29: error: call of overloaded 'beginTransmission(MPU_Type*)' is ambiguoussketch_nov11a.ino:17:29: note: candidates are:In file included from sketch_nov11a.ino:5:0:C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:39:7: note: void TwoWire::beginTransmission(uint8_t) <near match> void beginTransmission(uint8_t); ^C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:39:7: note: no known conversion for argument 1 from 'MPU_Type*' to 'uint8_t {aka unsigned char}'C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:40:7: note: void TwoWire::beginTransmission(int) <near match> void beginTransmission(int); ^C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:40:7: note: no known conversion for argument 1 from 'MPU_Type*' to 'int'sketch_nov11a.ino:20:31: error: invalid conversion from 'MPU_Type*' to 'int' [-fpermissive]In file included from sketch_nov11a.ino:5:0:C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:46:13: error: initializing argument 1 of 'uint8_t TwoWire::requestFrom(int, int, int)' [-fpermissive] uint8_t requestFrom(int, int, int); ^Erro compilando.…