mijn arduino reageert onwillekeurig
2 berichten
• Pagina 1 van 1
mijn arduino reageert onwillekeurig
hallo
hier heb ik een programma. alles werkt alleen als je de knop indrukt van aanraak1 en langer vast houd gaat hij raar doen en komen de uitgangen onwillekeurig knipperend op. iemand een idee. heb al geprobeerd met pullup weerstanden enz maar helpt niet
cpp code
hier heb ik een programma. alles werkt alleen als je de knop indrukt van aanraak1 en langer vast houd gaat hij raar doen en komen de uitgangen onwillekeurig knipperend op. iemand een idee. heb al geprobeerd met pullup weerstanden enz maar helpt niet
cpp code
#include <elapsedMillis.h>
elapsedMillis timeElapsed; //declare global if you don't want it reset every time loop runs
int buzzer = 11;
unsigned int interval = 500;
boolean ledState = LOW;
int aanraak1 = 3;
int aanraak2 = 4;
int aanraak3 = 5;
int uit1 = 8;
int uit2 = 9;
int uit3 = 10;
void setup() {
Serial.begin(9600);
pinMode (aanraak1, INPUT_PULLUP);
pinMode (uit1, OUTPUT);
pinMode (aanraak2, INPUT_PULLUP);
pinMode (uit2, OUTPUT);
pinMode (aanraak3, INPUT_PULLUP);
pinMode (uit3, OUTPUT);
pinMode (buzzer, OUTPUT);
}
void loop() {
int x = digitalRead(aanraak1);
int y = digitalRead(aanraak2);
int z = digitalRead(aanraak3);
if (x == HIGH){
digitalWrite(uit1, !HIGH);
digitalWrite(uit2, !HIGH);
digitalWrite(uit3, !HIGH);
digitalWrite(buzzer, !LOW);
delay(1000);
return;
}
if (y == HIGH){
digitalWrite(uit2, !HIGH);
digitalWrite(uit1, !LOW);
digitalWrite(uit3, !HIGH);
digitalWrite(buzzer, !LOW);
delay(1000);
return;
}
if (z == HIGH){
digitalWrite(uit3, !HIGH);
digitalWrite(uit2, !LOW);
digitalWrite(uit1, !LOW);
digitalWrite(buzzer, !LOW);
delay(1000);
return;
}
if ( z == 0 && timeElapsed > interval){
digitalWrite(uit1, !LOW);
digitalWrite(uit2, !LOW);
ledState = !ledState;
digitalWrite(buzzer, ledState);
digitalWrite(uit3, ledState);
timeElapsed = 0;
return;
}
}
Advertisement
Re: mijn arduino reageert onwillekeurig
dus jij vergelijkt een int met HIGH dat klopt niet.
cpp code
cpp code
#include <elapsedMillis.h>
elapsedMillis timeElapsed; //declare global if you don't want it reset every time loop runs
#define buzzerpin 11;
unsigned int interval = 500;
boolean ledState = false;
#define aanraak1pin 3; //zelf even de rest doen
int aanraak2 = 4; // ik heb overal maar een gedaan de rest kun je zelf.
int aanraak3 = 5;
int uit1 = 8;
int uit2 = 9;
int uit3 = 10;
void setup() {
Serial.begin(9600);
pinMode (aanraak1pin, INPUT_PULLUP);
pinMode (uit1, OUTPUT);
pinMode (aanraak2, INPUT_PULLUP);
pinMode (uit2, OUTPUT);
pinMode (aanraak3, INPUT_PULLUP);
pinMode (uit3, OUTPUT);
pinMode (buzzerpin, OUTPUT);
}
void loop() {
boolean x = (digitalRead(aanraak1)==HIGH);
int y = digitalRead(aanraak2);
int z = digitalRead(aanraak3);
// wat wil je als er 2 knoppen aan zijn.
// dat zijn al 8 standen
if (x && !y && !z){
digitalWrite(uit1, !HIGH);// wat is !HIGH gebruik dan LOW
digitalWrite(uit2, !HIGH);
digitalWrite(uit3, !HIGH);
digitalWrite(buzzer, !LOW);
delay(1000);
// return; als je in een functie zit kan dat wel maar hier niet
}
if (y == HIGH){
digitalWrite(uit2, !HIGH);
digitalWrite(uit1, !LOW);
digitalWrite(uit3, !HIGH);
digitalWrite(buzzer, !LOW);
delay(1000);
return;
}
if (z == HIGH){
digitalWrite(uit3, !HIGH);
digitalWrite(uit2, !LOW);
digitalWrite(uit1, !LOW);
digitalWrite(buzzer, !LOW);
delay(1000);
return;
}
if ( !z && (timeElapsed > interval)){// hier gaat ook iets fout met de tijd
digitalWrite(uit1, !LOW); wat is !LOW
digitalWrite(uit2, !LOW);
ledState = !ledState;
digitalWrite(buzzer, ledState);
digitalWrite(uit3, ledState);
timeElapsed = 0;
return;
}
}
paul deelen
shooter@home.nl
shooter@home.nl
2 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 13 gasten