Arduino relais schakelen
5 berichten
• Pagina 1 van 1
Arduino relais schakelen
Hallo allemaal,
Ik zal me eerst even voorstellen. Ik ben Robert en ik heb via school een arduino MEGA 2560 gekocht omdat dit me erg leuk leek!
ik wil nu thuis er mee gordijnen mee dicht doen het systeem wat ik wil gaan installeren maat voor de rest niks uit! maar ik wil 2 relais gebruiken om ze open en dicht te doen. nu wil ik dit ook via bluetooth doen! maar ik heb een probleempje.
Mischien is dit voor jullie gesneden koek maar ik zou er erg blij mee zijn als het verholpen kan worden. Ik heb nu een simpel programma geschreven maar het lijkt alsof mijn arduino hem te traag leest! ik moet meestal heel wat keer op de knop drukken voordat hij schakelt de ene keer is dat gelijk maar de andere x moet ik 10 keer drukken. Als ik 1 relay gebruik heb ik dat probleem niet. Ik heb het via bluetooth getest en via de seriele monitor. Waar zou dit aan kunnen liggen? wat zou ik er aan kunnen doen?
Hier het programma voor de duidelijkheid;)
int pin1 = 10;
int pin2 = 11;
int pin3 = 12;
int pin4 = 13;
void setup(){
Serial.begin(9600);
pinMode(pin1,OUTPUT);
pinMode(pin2,OUTPUT);
pinMode(pin3,OUTPUT);
pinMode(pin4,OUTPUT);
Serial.println("goedendag");
}
void loop(){
if((Serial.read())=='a')
{
if(digitalRead(pin1)==LOW)
{
digitalWrite(pin1,HIGH);
Serial.println("Turned 1 ON!");
}
else
{
digitalWrite(pin1,LOW);
Serial.println("Turned 1 OFF!");
}
}
if((Serial.read())=='b')
{
if(digitalRead(pin2)==LOW)
{
digitalWrite(pin2,HIGH);
Serial.println("Turned 2 ON!");
}
else
{
digitalWrite(pin2,LOW);
Serial.println("Turned 2 OFF!");
}
}
if((Serial.read())=='c')
{
if(digitalRead(pin2)==LOW)
{
digitalWrite(pin2,HIGH);
Serial.println("Turned 3 ON!");
}
else
{
digitalWrite(pin2,LOW);
Serial.println("Turned 3 OFF!");
}
}
}
alvast hartelijk bedankt;)
groeten robert
Ik zal me eerst even voorstellen. Ik ben Robert en ik heb via school een arduino MEGA 2560 gekocht omdat dit me erg leuk leek!
ik wil nu thuis er mee gordijnen mee dicht doen het systeem wat ik wil gaan installeren maat voor de rest niks uit! maar ik wil 2 relais gebruiken om ze open en dicht te doen. nu wil ik dit ook via bluetooth doen! maar ik heb een probleempje.
Mischien is dit voor jullie gesneden koek maar ik zou er erg blij mee zijn als het verholpen kan worden. Ik heb nu een simpel programma geschreven maar het lijkt alsof mijn arduino hem te traag leest! ik moet meestal heel wat keer op de knop drukken voordat hij schakelt de ene keer is dat gelijk maar de andere x moet ik 10 keer drukken. Als ik 1 relay gebruik heb ik dat probleem niet. Ik heb het via bluetooth getest en via de seriele monitor. Waar zou dit aan kunnen liggen? wat zou ik er aan kunnen doen?
Hier het programma voor de duidelijkheid;)
int pin1 = 10;
int pin2 = 11;
int pin3 = 12;
int pin4 = 13;
void setup(){
Serial.begin(9600);
pinMode(pin1,OUTPUT);
pinMode(pin2,OUTPUT);
pinMode(pin3,OUTPUT);
pinMode(pin4,OUTPUT);
Serial.println("goedendag");
}
void loop(){
if((Serial.read())=='a')
{
if(digitalRead(pin1)==LOW)
{
digitalWrite(pin1,HIGH);
Serial.println("Turned 1 ON!");
}
else
{
digitalWrite(pin1,LOW);
Serial.println("Turned 1 OFF!");
}
}
if((Serial.read())=='b')
{
if(digitalRead(pin2)==LOW)
{
digitalWrite(pin2,HIGH);
Serial.println("Turned 2 ON!");
}
else
{
digitalWrite(pin2,LOW);
Serial.println("Turned 2 OFF!");
}
}
if((Serial.read())=='c')
{
if(digitalRead(pin2)==LOW)
{
digitalWrite(pin2,HIGH);
Serial.println("Turned 3 ON!");
}
else
{
digitalWrite(pin2,LOW);
Serial.println("Turned 3 OFF!");
}
}
}
alvast hartelijk bedankt;)
groeten robert
Advertisement
Re: Arduino relais schakelen
Robert, gebruik volgende keer codeweergave dat leest wat prettiger.
Probeer dit eens:
Probeer dit eens:
- Code: Alles selecteren
int pin1 = 10;
int pin2 = 11;
int pin3 = 12;
int pin4 = 13;
void setup(){
Serial.begin(9600);
pinMode(pin1,OUTPUT);
pinMode(pin2,OUTPUT);
pinMode(pin3,OUTPUT);
pinMode(pin4,OUTPUT);
Serial.println("goedendag");
}
void loop(){
char ch=Serial.read();
{
switch (ch)
{
case 'a' :
{digitalWrite(pin1,!digitalRead(pin1));
Serial.print("pin1: ");Serial.println(digitalRead(pin1));}
break;
case 'b':
{digitalWrite(pin2,!digitalRead(pin2));
Serial.print("pin2: ");Serial.println(digitalRead(pin2));}
break;
case 'c':
{digitalWrite(pin3,!digitalRead(pin3));
Serial.print("pin3: ");Serial.println(digitalRead(pin3));}
break;
default:
{}
}
}
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Arduino relais schakelen
Zal ongetwijfeld aan mij liggen maar:
a) Dit programma stuurt 3 pinnen aan????
b) Geen bluetooth te bekennen???
c) Als je relais aanstuurt, gebruik je daar voor een relay driver of ga je rechtstreeks vanuit de pin het relais aansturen.... Want dan zou je nog wel eens een digital pin kunnen uitfikken....
a) Dit programma stuurt 3 pinnen aan????
b) Geen bluetooth te bekennen???
c) Als je relais aanstuurt, gebruik je daar voor een relay driver of ga je rechtstreeks vanuit de pin het relais aansturen.... Want dan zou je nog wel eens een digital pin kunnen uitfikken....
Re: Arduino relais schakelen
Hallo,
Hartelijk bedankt het werkt perfect;)
al1 ga ik nog even uitzoeken wat u nou veranderd heeft
groeten robert;)
Hartelijk bedankt het werkt perfect;)
al1 ga ik nog even uitzoeken wat u nou veranderd heeft
groeten robert;)
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Arduino relais schakelen
Nou als ik ff gauw door de wijzigingen van Emcri kijk dan is dat wel duidelijk. Ik dacht dat hij zondermeer het programma hetzelfde had gelaten
Maar in het originele programma die je een Serial.Read en test je of dat het character geeft dat je zoekt. Zo ja dan werkt het wel. Zo nee dan gaat hij WEER LEZEN en leest hij het volgende karakter.
Ecmri heeft in zijn programma het beter aangepakt:
Lees een keer (1x) een character
En gaat daarna testen of dat karakter een a,b of c is.
Overigens zitten daar nog wat overbodige accolades in. En teveel creëert ook weer vaak verwarring alsmede meerdere statements op een regel dus
zou ik schrijven als:
Beide zijn goed maar je mag het hele scherm gebruiken om je code te schrijven.
Maar in het originele programma die je een Serial.Read en test je of dat het character geeft dat je zoekt. Zo ja dan werkt het wel. Zo nee dan gaat hij WEER LEZEN en leest hij het volgende karakter.
Ecmri heeft in zijn programma het beter aangepakt:
Lees een keer (1x) een character
En gaat daarna testen of dat karakter een a,b of c is.
Overigens zitten daar nog wat overbodige accolades in. En teveel creëert ook weer vaak verwarring alsmede meerdere statements op een regel dus
- Code: Alles selecteren
case 'a' :
{digitalWrite(pin1,!digitalRead(pin1));
Serial.print("pin1: ");Serial.println(digitalRead(pin1));}
break;
zou ik schrijven als:
- Code: Alles selecteren
case 'a' :
digitalWrite(pin1,!digitalRead(pin1));
Serial.print("pin1: ");
Serial.println(digitalRead(pin1));
break;
Beide zijn goed maar je mag het hele scherm gebruiken om je code te schrijven.
5 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 11 gasten