Hallo,
Ik ben een autodakraam aan het programmeren met een Texas instruments launchpad.
Het dakraam heeft 4 knoppen:
"dak open"
"dak dicht"
"zonnenscherm open"
"zonnenscherm dicht"
Nu is de bedoeling dat het dak start doormiddel van op de startknop te drukken. Dit heb ik allemaal al werkend. Het dak moet stoppen als het de eindschakelaars bereikt heeft. Hierna moet het dak ook weer dicht te maken zijn. Op een een of andere manier reageert mijn code niet op de eindschakelaars en valt hierna uit op de voeding.
Ik hoop dat iemand mij kan helpen.
Hierbij mijn code
int knop1 = 11; //Button 1 roof open.
int knop2 = 12; //Button 2 roof close.
int knop3 = 13; //Button 3 sunshade close.
int knop4 = 19; //Button 4 sunshade open.
int M1L = 35; //Motor roof open.
int M1R = 36; //Motor roof close.
int M2L = 37; //Motor sunshade open.
int M2R = 38; //Motor sunshade close.
int sensor1 = 34; //sensor, roof open. (microswitch)
int sensor2 = 33; //sensor, roof close. (microswitch)
int sensor3 = 32; //Sensor, sunshade open. (microswitch)
int sensor4 = 31; //Sensor, sunshade close. (microswitch)
int buttonStatus1 = 0;
int buttonStatus2 = 0;
int buttonStatus3 = 0;
int buttonStatus4 = 0;
void setup ()
{
pinMode (knop1, INPUT);
pinMode (knop2, INPUT);
pinMode (knop3, INPUT);
pinMode (knop4, INPUT);
pinMode (M1L, OUTPUT);
pinMode (M1R, OUTPUT);
pinMode (M2L, OUTPUT);
pinMode (M2R, OUTPUT);
pinMode (sensor1, INPUT);
pinMode (sensor2, INPUT);
pinMode (sensor3, INPUT);
pinMode (sensor4, INPUT);
digitalWrite(knop1, LOW);
digitalWrite(knop2, LOW);
digitalWrite(knop3, LOW);
digitalWrite(knop4, LOW);
digitalWrite(sensor1, LOW);
digitalWrite(sensor2, LOW);
digitalWrite(sensor3, LOW);
digitalWrite(sensor4, LOW);
Serial.begin(9600);
}
void loop()
{
buttonStatus1 = digitalRead(knop1);
buttonStatus2 = digitalRead(knop2);
buttonStatus3 = digitalRead(knop3);
buttonStatus4 = digitalRead(knop4);
{ if (buttonStatus1 == HIGH && buttonStatus2 == LOW && buttonStatus3 == LOW && buttonStatus4 == LOW) //Dak open.
do
{
digitalWrite(M1L, HIGH);
digitalWrite(M1R, LOW);
}while(digitalRead (sensor2 == LOW));
}
{ if (buttonStatus1 == LOW && buttonStatus2 == HIGH && buttonStatus3 == LOW && buttonStatus4 == LOW) //Dak dicht.
do
{
digitalWrite(M1L, LOW);
digitalWrite(M1R, HIGH);
}while(digitalRead (sensor1 == LOW));
}
{ if (buttonStatus1 == LOW && buttonStatus2 == LOW && buttonStatus3 == HIGH && buttonStatus4 == LOW) //Zonnenscherm open.
do
{
digitalWrite(M2L, HIGH);
digitalWrite(M2R, LOW);
}while(digitalRead (sensor4 == LOW));
}
{ if (buttonStatus1 == LOW && buttonStatus2 == LOW && buttonStatus3 == LOW && buttonStatus4 == HIGH) //Zonnenscherm dicht.
do
{
digitalWrite(M2L, LOW);
digitalWrite(M2R, HIGH);
}while(digitalRead (sensor3 == LOW));
}
}
Mijn circuit werkt met pull-up weerstanden en de signalen komen gewoon binnen.
alvast bedankt!