tijd instellen
13 berichten
• Pagina 1 van 2 • 1, 2
tijd instellen
Ik ben een nieuwe gebruiker van Arduino, heb dus geen ervaring.
Ik wilde een ledje 5sec latenbranden als ik even op een knopje druk.
Waarom werkt deze code niet?
cpp code
Ik wilde een ledje 5sec latenbranden als ik even op een knopje druk.
Waarom werkt deze code niet?
cpp code
int knop = 2; // knop aan pin 2
int led = 13; // led aan pin 13
int toestandknop = 0; // variabele voor het lezen van de knop
void setup() {
pinMode(led, OUTPUT); // ledpin is output
pinMode(knop, INPUT); // knop is input
}
void loop() {
toestandknop = digitalRead(knop); // toestandknop is de waarde van knop
if (toestandknop == HIGH) { // controleer of de knop ingedrukt is
digitalWrite(led, HIGH); // indien ingedrukt: led aan
delay(5000);
} else
{
digitalWrite(led, LOW); // anders: led uit
}
}
Advertisement
Re: tijd instellen
Allereerst hoe kun je kijken of iets HIGH is, als het een integer is.
dus verander de HIGH eens naar 1
en als je dus een Serial.print ertussenzet kun je zien wat er gebeurt.
Verder lijkt je programma goed.
zet wel de naam van pinnen in de naam zoals pinKnop dan vergis je niet zo veel.
dus verander de HIGH eens naar 1
en als je dus een Serial.print ertussenzet kun je zien wat er gebeurt.
Verder lijkt je programma goed.
zet wel de naam van pinnen in de naam zoals pinKnop dan vergis je niet zo veel.
paul deelen
shooter@home.nl
shooter@home.nl
Re: tijd instellen
shooter schreef:Allereerst hoe kun je kijken of iets HIGH is, als het een integer is.
dus verander de HIGH eens naar 1
en als je dus een Serial.print ertussenzet kun je zien wat er gebeurt.
Verder lijkt je programma goed.
zet wel de naam van pinnen in de naam zoals pinKnop dan vergis je niet zo veel.
Bedankt voor uw reactie maar toch blijft het ledje geen 5seconden branden.
Ik dacht dat die delay 5000 dat zou doen maar blijkbaar is dat toch verkeerd.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: tijd instellen
Hoe is die knop geschakeld? Schakel je naar GND of naar 5V?
En als je naar GND schakelt, dan moet je testen op LOW. Daarnaast moet er een weerstandje van 4K7 --10K naar de VCC gezet worden. Anders zweeft je ingang van de knop
Als je naar VCC schakelt, dan moet je testen op HIGH en moet de weerstand van de datapin naar GND gaan.
En als je naar GND schakelt, dan moet je testen op LOW. Daarnaast moet er een weerstandje van 4K7 --10K naar de VCC gezet worden. Anders zweeft je ingang van de knop
Als je naar VCC schakelt, dan moet je testen op HIGH en moet de weerstand van de datapin naar GND gaan.
Re: tijd instellen
nicoverduin schreef:Hoe is die knop geschakeld? Schakel je naar GND of naar 5V?
En als je naar GND schakelt, dan moet je testen op LOW. Daarnaast moet er een weerstandje van 4K7 --10K naar de VCC gezet worden. Anders zweeft je ingang van de knop
Als je naar VCC schakelt, dan moet je testen op HIGH en moet de weerstand van de datapin naar GND gaan.
Ik heb een draadje van de 5V naar de drukknop.
Aan de andere kant van de drukknop heb ik een draadje pin 2 en dan een weerstand van 10Kohm naar de min.
Als ik op het knopje druk brand het ledje zolang ik het knopje ingedruk houd.
Als ik loslaat gaat het ledje onmiddelijk uit terwijl ik het eigenlijk nog 5sec wilde laten branden.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: tijd instellen
Bij mij ff getest met een verschil: bij mijn bordje is AAN de knop naar GND trekken. En de sketch werkt als een tierelier.
cpp code
Heb je de pin 2 wel goed aangesloten op de juiste plek? pin D2 (dus de derde pin)?
cpp code
int knop = 2; // knop aan pin 2
int led = 13; // led aan pin 13
int toestandknop = 0; // variabele voor het lezen van de knop
void setup() {
pinMode(led, OUTPUT); // ledpin is output
pinMode(knop, INPUT); // knop is input
}
void loop() {
toestandknop = digitalRead(knop); // toestandknop is de waarde van knop
if (toestandknop == LOW) { // controleer of de knop ingedrukt is
digitalWrite(led, HIGH); // indien ingedrukt: led aan
delay(5000);
} else {
digitalWrite(led, LOW); // anders: led uit
}
}
Heb je de pin 2 wel goed aangesloten op de juiste plek? pin D2 (dus de derde pin)?
Re: tijd instellen
nicoverduin schreef:Bij mij ff getest met een verschil: bij mijn bordje is AAN de knop naar GND trekken. En de sketch werkt als een tierelier.
cpp codeint knop = 2; // knop aan pin 2
int led = 13; // led aan pin 13
int toestandknop = 0; // variabele voor het lezen van de knop
void setup() {
pinMode(led, OUTPUT); // ledpin is output
pinMode(knop, INPUT); // knop is input
}
void loop() {
toestandknop = digitalRead(knop); // toestandknop is de waarde van knop
if (toestandknop == LOW) { // controleer of de knop ingedrukt is
digitalWrite(led, HIGH); // indien ingedrukt: led aan
delay(5000);
} else {
digitalWrite(led, LOW); // anders: led uit
}
}
Heb je de pin 2 wel goed aangesloten op de juiste plek? pin D2 (dus de derde pin)?
Ik snap er niets van, bij mij blijft die led geen 5sec aan, ik heb de aansluiting anders geprobeerd en ook de code aangepast.
void loop() {
toestandknop = digitalRead(knop); // toestandknop is de waarde van knop
if (toestandknop == LOW) { // controleer of de knop ingedrukt is
digitalWrite(led, HIGH); // indien ingedrukt: led aan
delay(5000);
} else {
digitalWrite(led, LOW); // anders: led uit
}
}[/code2]
Dit is mijn aansluiting: Hier zou een bijlage moeten staan.
- Gij Kieken
- Berichten: 636
- Geregistreerd: 15 Nov 2015, 11:54
Re: tijd instellen
Als je dan toch van LOW & HIGH houd maak dan van regel 3 eens
bool toestandknop = LOW; // variabele voor het lezen van de knop
bool toestandknop = LOW; // variabele voor het lezen van de knop
- Code: Alles selecteren
int knop = 2; // knop aan pin 2
int led = 13; // led aan pin 13
bool toestandknop = LOW; // variabele voor het lezen van de knop
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT); // ledpin is output
pinMode(knop, INPUT_PULLUP); // knop is input
}
void loop() {
toestandknop = digitalRead(knop); // toestandknop is de waarde van knop
if (toestandknop == LOW) { // controleer of de knop ingedrukt is
digitalWrite(led, HIGH); // indien ingedrukt: led aan
Serial.println (toestandknop);
delay(5000);
} else {
digitalWrite(led, LOW); // anders: led uit
Serial.println (toestandknop);
delay(2000); // Wacht een beetje anders loopt de serial monitor direct vol
}
}
Re: tijd instellen
Iedereen hier bedankt voor de hulp.
Ik heb vandaag alles van mijn oefenbordje verwijderd en alles opnieuw opgebouwd maar op een andere plaats.
De code heb ik gelaten zoals ik ze de eerste keer gemaakt heb.
En nu werkt de schakeling prima.
Ik vraag mij af of er misschien een foutje zit in mijn oefenbord, misschien een verbinding niet goed?
Ik kocht als beginner mijn volledig pakket bij Banggood, is dat misschien een slecht idee om dat daar te kopen?
Enfin, nu werkt de schakeling prima.
Ik heb vandaag alles van mijn oefenbordje verwijderd en alles opnieuw opgebouwd maar op een andere plaats.
De code heb ik gelaten zoals ik ze de eerste keer gemaakt heb.
En nu werkt de schakeling prima.
Ik vraag mij af of er misschien een foutje zit in mijn oefenbord, misschien een verbinding niet goed?
Ik kocht als beginner mijn volledig pakket bij Banggood, is dat misschien een slecht idee om dat daar te kopen?
Enfin, nu werkt de schakeling prima.
Re: tijd instellen
Gij Kieken schreef:Als je dan toch van LOW & HIGH houd maak dan van regel 3 eens
bool toestandknop = LOW; // variabele voor het lezen van de knop
- Code: Alles selecteren
int knop = 2; // knop aan pin 2
int led = 13; // led aan pin 13
bool toestandknop = LOW; // variabele voor het lezen van de knop
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT); // ledpin is output
pinMode(knop, INPUT_PULLUP); // knop is input
}
void loop() {
toestandknop = digitalRead(knop); // toestandknop is de waarde van knop
if (toestandknop == LOW) { // controleer of de knop ingedrukt is
digitalWrite(led, HIGH); // indien ingedrukt: led aan
Serial.println (toestandknop);
delay(5000);
} else {
digitalWrite(led, LOW); // anders: led uit
Serial.println (toestandknop);
delay(2000); // Wacht een beetje anders loopt de serial monitor direct vol
}
}
Ik heb uw code ook geprobeerd en deze werkt ook prima na het heropbouwen van mijn opstelling op een andere plaats op mijn bordje.
Leuk om het ook eens op een andere manier te doen.
13 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 11 gasten