Un cordial saludo comunidad de Arduino.
Hola, soy nuevo por aquí. estoy intentando realizar un proyecto para contolar la puerta de mi garaje.
el codigo es siguiente:
/*automatismo portal. controla un portal con llave que ordena PARAR,ABRIR, PARAR, CERRAR alternativamente.con funcionamiento por bluetooth y mando rf 315Mhz
*/
//constantes que no cambian
const int st1=8; //rele 1 puerta
const int st2=9; //rele 2 puerta
const int st3=10; //rele 3 puerta
const int luz=11; //luz garaje
const int llave=12; //llave garaje
const int dol=7; //limite puerta abierta
const int dcl=6; //limite puerta cerrada
//constantes que varian
int estado=0;
#define D0 2 //asigna el pin 2 al pin D0 del receptor RF
#define D1 3 //asigna el pin 3 al pin D1 del receptor RF
#define VT 4 //asigna el pin 4 al pin D2 del receptor RF
void setup() {
Serial.begin(9600);
pinMode(st1,OUTPUT);
pinMode(st2,OUTPUT);
pinMode(st3,OUTPUT);
pinMode(luz,OUTPUT); // luz de la puerta
pinMode(llave,INPUT); //llave exterior
pinMode(dol,INPUT); // limite de puertas abiertas
pinMode(dcl,INPUT); //limite de puertas cerradas
pinMode(D0, INPUT); //configura el pin D0 como entrada
pinMode(D1, INPUT); //configura el pin D1 como entrada
pinMode(VT, INPUT); //configura el pin VT como entrada
}
void D_O()
{
digitalWrite(st1,HIGH);
digitalWrite(st2,LOW); //abre puerta
digitalWrite(st3,HIGH);
delay(100);
}
void D_C()
{
digitalWrite(st1,HIGH);
digitalWrite(st2,HIGH); //cierra puerta
digitalWrite(st3,HIGH);
delay(100);
}
void loop() {
puertabluetooth();
abre();
paradoAbriendo();
cierra();
paradoCerrando();
receptorRF();
}
void puertabluetooth() //void bluetooth
{
if(Serial.available()>0){
estado = Serial.read();
}
if (estado =='1'){
digitalWrite(st1,HIGH);
digitalWrite(st2,LOW); //abre puerta
digitalWrite(st3,HIGH);
}
if (estado =='2'){
digitalWrite(st1,LOW);
digitalWrite(st2,LOW); //stop
digitalWrite(st3,LOW);
}
if (estado =='3'){
digitalWrite(st1,HIGH);
digitalWrite(st2,HIGH); //cierra puerta
digitalWrite(st3,HIGH);
}
if (estado =='4'){
digitalWrite(st1,LOW);
digitalWrite(st2,LOW); //stop
digitalWrite(st3,LOW);
}
if (estado =='5'){
digitalWrite(luz,HIGH); //enciende luz
}
if (estado =='6'){
digitalWrite(luz,LOW); //apaga luz
}
}
void abre()
{
digitalWrite(void D_O(),HIGH);
digitalWrite(void D_C(),LOW);
delay(500);
while(digitalRead(dol)==HIGH)
{if(digitalRead(llave)==LOW}
{digitalWrite(D_O(),HIGH}
else
return;
}
void paradoAbriendo()
{
digitalWrite(void D_O(),LOW);
digitalWrite(void D_C(),LOW);
delay(500);
while(digitalRead(llave)==LOW)
{digitalWrite(void D_O(),LOW)}
return;
}
void cierra()
{
digitalWrite(void D_C(),HIGH);
digitalWrite(void D_O(),LOW);
delay(500);
while(digitalRead(dcl)==HIGH)
{
if(digitalRead(llave)==LOW)
{digitalWrite(void D_C(),HIGH);}
else{return;}
}
return;
}
void paradoCerrando()
{
digitalWrite(void D_O(),LOW);
digitalWrite(void D_C(),LOW);
delay(500);
while (digitalRead(llave)==LOW)
{
digitalWrite(void D_C(),LOW);
}
return;
}
void receptorRF()
{
//Si el pin VT (valid Transmission) es igual a HIGH quiere decir
//que hubo una comunicacion exitosa entre control y receptor
if(digitalRead(VT)){
//si el pin D0 es igual a high, es porque se presiono el boton B en el control
if(digitalRead(D0)){
digitalWrite(void D_O(), !digitalRead(void D_O()); //alterna el estado de la salida
delay(300);
}
//si el pin D1 es igual a high, es porque se presiono el boton D en el control
if(digitalRead(D1)){
digitalWrite(void D_C(), !digitalRead(void D_C()); //alterna el estado de la salida
delay(300);
}
//si el pin D1 es igual a high, es porque se presiono el boton D en el control
}
y los errores estos:
Arduino:1.6.9 (Windows 7), Tarjeta:"Arduino Nano, ATmega328"
C:\Users\viliño\Documents\Arduino\puertagarage6\puertagarage6.ino: In function 'void abre()':
puertagarage6:101: error: expected primary-expression before 'void'
puertagarage6:102: error: expected primary-expression before 'void'
puertagarage6:105: error: expected ')' before '}' token
puertagarage6:105: error: expected primary-expression before '}' token
puertagarage6:105: error: expected ';' before '}' token
puertagarage6:106: error: expected ')' before '}' token
puertagarage6:106: error: expected ';' before '}' token
puertagarage6:107: error: 'else' without a previous 'if'
C:\Users\viliño\Documents\Arduino\puertagarage6\puertagarage6.ino: In function 'void paradoAbriendo()':
puertagarage6:114: error: expected primary-expression before 'void'
puertagarage6:115: error: expected primary-expression before 'void'
puertagarage6:118: error: expected primary-expression before 'void'
puertagarage6:118: error: expected ';' before '}' token
C:\Users\viliño\Documents\Arduino\puertagarage6\puertagarage6.ino: In function 'void cierra()':
puertagarage6:124: error: expected primary-expression before 'void'
puertagarage6:125: error: expected primary-expression before 'void'
puertagarage6:130: error: expected primary-expression before 'void'
C:\Users\viliño\Documents\Arduino\puertagarage6\puertagarage6.ino: In function 'void paradoCerrando()':
puertagarage6:139: error: expected primary-expression before 'void'
puertagarage6:140: error: expected primary-expression before 'void'
puertagarage6:144: error: expected primary-expression before 'void'
C:\Users\viliño\Documents\Arduino\puertagarage6\puertagarage6.ino: In function 'void receptorRF()':
puertagarage6:158: error: expected primary-expression before 'void'
puertagarage6:158: error: expected primary-expression before 'void'
puertagarage6:163: error: expected primary-expression before 'void'
puertagarage6:163: error: expected primary-expression before 'void'
puertagarage6:167: error: expected '}' at end of input
exit status 1
expected primary-expression before 'void'
Este reporte podría tener más información con
"Mostrar salida detallada durante la compilación"
opción habilitada en Archivo -> Preferencias.
muchisimas gracias de antemano.