besturing burg werkt niet

Arduino specifieke Software
Berichten: 21
Geregistreerd: 23 Jan 2013, 10:59

besturing burg werkt niet

Berichtdoor patrickwit » 25 Mrt 2013, 11:09

hallo mensen,

ik zit met een probleem, mijn programma werkt niet voldoende.
ik stuur hem naar een subroutine en dan moet hij daar blijven hangen maar dat doet hij niet.
dus dan zit ik ga naar routine brug open en dan moet hij daar blijven hangen maar hij gaat uit de routine heb ik het idee.

wil wil mij helpen:
Code: Alles selecteren
#include <Servo.h>
int Roodauto1 =13;
int Roodauto2 =12;
int Roodschepen =11;
int Groenschepen =10;
int brugopen = 3;

Servo slagboom1;
Servo slagboom2;

int pos = 0;

int eindschakelaar1 = 9;
int status1 = 0;
int eindschakelaar2 = 8;
int status2 = 0;
int eindschakelaar3 = 7;
int status3 = 0;
int eindschakelaar4 = 6;
int status4 = 0;



void setup(){
  Serial.begin (9600);
  pinMode(Roodauto1, OUTPUT);
  pinMode(Roodauto2, OUTPUT);
  pinMode(Roodschepen, OUTPUT);
  pinMode(Groenschepen, OUTPUT);
  slagboom1.attach(5);
  slagboom2.attach(4);
  pinMode (brugopen, OUTPUT);
  pinMode(eindschakelaar1, INPUT);
  pinMode(eindschakelaar2, INPUT);
  pinMode(eindschakelaar3, INPUT);
  pinMode(eindschakelaar4, INPUT);
  for (int thisPin = 2; thisPin <= 13; thisPin++) {
    pinMode(thisPin, OUTPUT);
  }

  digitalWrite(Roodauto1, LOW);
  digitalWrite(Roodauto2, LOW);
  digitalWrite (Roodschepen,HIGH);
  for(pos = 140; pos<=140; pos+=1)     
  {                               
    slagboom1.write(pos);               
    delay(80);
  }
  delay (2000);
}

void loop(){
  if (Serial.available() > 0) {
    int inByte = Serial.read();
    Serial.write ("1");
    status1 = digitalRead(eindschakelaar1);
    status2 = digitalRead(eindschakelaar2);
    status3 = digitalRead(eindschakelaar3);
    status4 = digitalRead(eindschakelaar4);

    switch (inByte) {
    case 'a':
      roodauto();
      break;
    case 'b':
      if (status1 == HIGH);
      {
        roodauto();
        roodauto();
        roodauto();
        roodauto();
        slagbomen_omlaag();
      }
      break;
    case 'c':

      if(status3 == HIGH && status1 ==LOW){
        brug_open();

      }
      break;
    case 'd':
      if (status4== HIGH && status3 ==LOW){
        groenschepen();
      }
      break;
    case 'e':
      if(status4 == HIGH && status3 == LOW);
      {
        brug_dicht();
      }
      break;
    case 'f':
      if (status1 == LOW && status3 ==HIGH) {
        slagbomen_omhoog();
      }
      break;
    default:
      // turn all the LEDs off:
      for (int thisPin = 2; thisPin <= 13; thisPin++) {
        digitalWrite(thisPin, LOW);
      }
    }
  }
}

//---------------------------------------
void roodauto(){
  //---------------------------------------
  {
    Serial.write("2");
    tone(2, 2000, 100);
    digitalWrite(Roodauto1, HIGH);
    digitalWrite(Roodauto2, LOW);
    delay(500);
    tone(2, 2000, 100);
    digitalWrite(Roodauto1, LOW);
    digitalWrite(Roodauto2, HIGH);
    delay(500); 


  }
}
//---------------------------------------
void slagbomen_omlaag(){
  //---------------------------------------
  Serial.write ("3");

  for(pos = 140; pos >40; pos-=1)     
  {

    slagboom1.write(pos);
    delay(80);

  }
}
//---------------------------------------
void brug_open(){
  //---------------------------------------
  Serial.write ("4");

  digitalWrite (brugopen, HIGH);

  if (status4 == HIGH){
    digitalWrite (brugopen,LOW);
  }
}
//---------------------------------------
void groenschepen(){
  Serial.write ("5");
  //---------------------------------------
  digitalWrite (Groenschepen, HIGH);
  digitalWrite (Roodschepen, LOW);
}
//---------------------------------------
void brug_dicht(){
  Serial.write ("6");
  //---------------------------------------
  digitalWrite (brugopen, HIGH);
  digitalWrite (Roodschepen, HIGH);
  digitalWrite (Groenschepen, LOW);

  if (status3 == HIGH){
    digitalWrite (brugopen,LOW);
  }
}
//---------------------------------------
void slagbomen_omhoog(){
  Serial.write ("7");
  //---------------------------------------
  for(pos = 38; pos >140; pos+=1)     
  {                               
    slagboom1.write(pos);               
    delay(40);                     
  }

}






Advertisement

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: besturing burg werkt niet

Berichtdoor Rudi » 25 Mrt 2013, 13:38

In void setup() gaat er al iets fout. Je definieert pinnen 6 t/m 9 als INPUT, daarna weer als OUTPUT :?:

Code: Alles selecteren
  pinMode(eindschakelaar1, INPUT);
  pinMode(eindschakelaar2, INPUT);
  pinMode(eindschakelaar3, INPUT);
  pinMode(eindschakelaar4, INPUT);
  for (int thisPin = 2; thisPin <= 13; thisPin++) {
    pinMode(thisPin, OUTPUT);
  }
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Berichten: 21
Geregistreerd: 23 Jan 2013, 10:59

Re: besturing burg werkt niet

Berichtdoor patrickwit » 25 Mrt 2013, 13:49

o stom, ja dat was puur om via serial monitor de functies apart aan te sturen dus dat kan ik aanpassen, maar voordat ik dat erin geprogrammeerd had ging het al fout

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: isokuisa, ucugayehuse en 16 gasten