Regels HIGH en LOW werken contra in de code
17 berichten
• Pagina 2 van 2 • 1, 2
Re: Regels HIGH en LOW werken contra in de code
Oeps iets teveel gepost vrees ik, weet naar welke ik terug moet.
Maar alvorens mijn "prachtige" test opstelling te slopen....dacht ik dat deze code zou moeten werken:
Via > meten() kom ik hier terecht.....en de led zou 5 sec moeten branden.
Klopt dit of terug naar de lessenaar?
Een tweede Arduino is een uitkomst voor dit soort deel testen.
int ledState = LOW;
unsigned long previousMillis;
unsigned long interval = 5000;
void setup(){
pinMode( LED_BUILTIN, OUTPUT);
}
void loop(){
unsigned long currentMillis = millis();
if( currentMillis - previousMillis >= interval)
{
previousMillis = currentMillis;
if(ledState == LOW)
{
ledState = HIGH;
digitalWrite( LED_BUILTIN,ledState);}
}
ledState = LOW;
}
Maar alvorens mijn "prachtige" test opstelling te slopen....dacht ik dat deze code zou moeten werken:
Via > meten() kom ik hier terecht.....en de led zou 5 sec moeten branden.
Klopt dit of terug naar de lessenaar?
Een tweede Arduino is een uitkomst voor dit soort deel testen.
int ledState = LOW;
unsigned long previousMillis;
unsigned long interval = 5000;
void setup(){
pinMode( LED_BUILTIN, OUTPUT);
}
void loop(){
unsigned long currentMillis = millis();
if( currentMillis - previousMillis >= interval)
{
previousMillis = currentMillis;
if(ledState == LOW)
{
ledState = HIGH;
digitalWrite( LED_BUILTIN,ledState);}
}
ledState = LOW;
}
Advertisement
Re: Regels HIGH en LOW werken contra in de code
Bovenstaand probeersel werkt niet.
Ik zal wel het domste jongetje van de klas zijn, maar ik begrijp de werking van Millis() niet
en zonder begrip geen vooruitgang.
Niet getreurt, de code eigen maken is geen kwestie van 'of' maar van 'wanneer'.
Opgeven is geen optie:)
Ik zal wel het domste jongetje van de klas zijn, maar ik begrijp de werking van Millis() niet
en zonder begrip geen vooruitgang.
Niet getreurt, de code eigen maken is geen kwestie van 'of' maar van 'wanneer'.
Opgeven is geen optie:)
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: Regels HIGH en LOW werken contra in de code
Ik weet je bedoeling niet echt maar des al niet te min misschien,
- Code: Alles selecteren
int ledState = LOW; // Initiëele ledState
unsigned long previousMillis; // De vorige tijd
unsigned long interval = 5000; // Kies 5 sec interval
void setup() {
pinMode( LED_BUILTIN, OUTPUT); // Gebruik de ingebouwde Led
}
void loop() {
unsigned long currentMillis = millis();
if ( currentMillis - previousMillis >= interval) { // Kijk of er 5 seconden voorbij zijn
previousMillis = currentMillis; // Reset de variabelen
ledState = !ledState; // Toggle de ledState
digitalWrite( LED_BUILTIN, ledState); // Schrijf naar de uitgang
}
}
Re: Regels HIGH en LOW werken contra in de code
Dank u, hier kan ik verder mee.
Vraagje: kan ik..... !ledState zien als..
if (ledState == LOW){ledState = HIGH;}else {ledState =LOW;} ?
De vertaling van "Toggle" is swichen, vandaar de vraag.
Vraagje: kan ik..... !ledState zien als..
if (ledState == LOW){ledState = HIGH;}else {ledState =LOW;} ?
De vertaling van "Toggle" is swichen, vandaar de vraag.
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: Regels HIGH en LOW werken contra in de code
Ja dat is het zowat.
Hier heb je misschien ook iets aan (het is in het nederlands)http://www.arduino.nu/
dan navigeren naar rechts en een beetje zakken staat er NIEUW in rood hier downloaden.
Dit is zeker ook een opsteker (en ook in nederlands) https://arduino-lessen.nl/
Hier heb je misschien ook iets aan (het is in het nederlands)http://www.arduino.nu/
dan navigeren naar rechts en een beetje zakken staat er NIEUW in rood hier downloaden.
Dit is zeker ook een opsteker (en ook in nederlands) https://arduino-lessen.nl/
Re: Regels HIGH en LOW werken contra in de code
Top, beide linken zijn prachtig les materiaal, ga ik ernstig bestuderen.
Aankomende dagen om versie 'kippenluik' met delay() en 'kippenluik' met Millis()
tot één werkend geheel te smeden en uit te testen.
Ik ben reuze benieuwd of dat zonder hulp gaat slagen!
Reuze bedankt voor de hulp tot zover.
Aankomende dagen om versie 'kippenluik' met delay() en 'kippenluik' met Millis()
tot één werkend geheel te smeden en uit te testen.
Ik ben reuze benieuwd of dat zonder hulp gaat slagen!
Reuze bedankt voor de hulp tot zover.
Re: Regels HIGH en LOW werken contra in de code
Eindelijk is een werkbare versie klaar! De beweging sensor is nog niet actief
en de licht waarden worden nu getoetst en ingesteld op hun werkzaamheid.
Met dank voor jullie support, tips and tricks blijven welkom, om het beter te maken.
Hieronder de code:
// Automatisch Kippenluik versie 10032019
// Geschreven voor Arduino Nano ATmega 328 (oldBootloader)
int Luikstatus = 0;
int ledState2 = 2;
int ledState5 = 5;
int ledState6 = 6;
int in2 = 7;
int in1 = 8;
int enA = 9;
int licht = (analogRead(A0));
int pirPin = 12; // Pin voor de HC-S501 sensor
int pirValue; // Uitgelezen sensor waarde
void setup() {
Serial.begin(9600);
pinMode(A0, INPUT);
pinMode(enA, OUTPUT);
pinMode(ledState2, OUTPUT);
pinMode(ledState5, OUTPUT);
pinMode(ledState6, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in1, OUTPUT);
digitalWrite(ledState2,HIGH);
pinMode(pirPin, INPUT); // Stel de pirPin in als invoer
}
void openen() {
digitalWrite(ledState5,HIGH);
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
// Set speed to 200 out of possible range 0~255
analogWrite(enA, 200);
Serial.print("Luikstatus = ");
Luikstatus = 1;
Serial.println(Luikstatus);
delay(8000);
digitalWrite(ledState5,LOW);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
meten();
}
void sluiten(){
digitalWrite(ledState6,HIGH);
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
// Set speed to 200 out of possible range 0~255
analogWrite(enA, 200);
Serial.print("Luikstatus = ");
Luikstatus = 0;
Serial.println(Luikstatus);
delay(8000);
digitalWrite(ledState6,LOW);
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
meten();
}
void meten(){
//pirValue = digitalRead(pirPin); // Lees de waarde van de PIR uit
//if (pirValue == 1){Serial.println("Er is beweging");}
//else { Serial.println("Er is geen beweging");}
//Serial.println(pirValue);
int licht = (analogRead(A0));
Serial.print("lichtsterkte = ");
Serial.println(licht);
delay(5000);
if
(licht >220 && Luikstatus == 1){Serial.println("Luik is open");}
if
(licht >220 && Luikstatus == 0){Serial.println("Luik openen"); openen();}
if
(licht <180 && Luikstatus == 0){Serial.println("Luik is dicht");}
if
(licht <180 && Luikstatus == 1){Serial.println("Luik sluiten"); sluiten();}}
void loop(){meten();}
//
en de licht waarden worden nu getoetst en ingesteld op hun werkzaamheid.
Met dank voor jullie support, tips and tricks blijven welkom, om het beter te maken.
Hieronder de code:
// Automatisch Kippenluik versie 10032019
// Geschreven voor Arduino Nano ATmega 328 (oldBootloader)
int Luikstatus = 0;
int ledState2 = 2;
int ledState5 = 5;
int ledState6 = 6;
int in2 = 7;
int in1 = 8;
int enA = 9;
int licht = (analogRead(A0));
int pirPin = 12; // Pin voor de HC-S501 sensor
int pirValue; // Uitgelezen sensor waarde
void setup() {
Serial.begin(9600);
pinMode(A0, INPUT);
pinMode(enA, OUTPUT);
pinMode(ledState2, OUTPUT);
pinMode(ledState5, OUTPUT);
pinMode(ledState6, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in1, OUTPUT);
digitalWrite(ledState2,HIGH);
pinMode(pirPin, INPUT); // Stel de pirPin in als invoer
}
void openen() {
digitalWrite(ledState5,HIGH);
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
// Set speed to 200 out of possible range 0~255
analogWrite(enA, 200);
Serial.print("Luikstatus = ");
Luikstatus = 1;
Serial.println(Luikstatus);
delay(8000);
digitalWrite(ledState5,LOW);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
meten();
}
void sluiten(){
digitalWrite(ledState6,HIGH);
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
// Set speed to 200 out of possible range 0~255
analogWrite(enA, 200);
Serial.print("Luikstatus = ");
Luikstatus = 0;
Serial.println(Luikstatus);
delay(8000);
digitalWrite(ledState6,LOW);
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
meten();
}
void meten(){
//pirValue = digitalRead(pirPin); // Lees de waarde van de PIR uit
//if (pirValue == 1){Serial.println("Er is beweging");}
//else { Serial.println("Er is geen beweging");}
//Serial.println(pirValue);
int licht = (analogRead(A0));
Serial.print("lichtsterkte = ");
Serial.println(licht);
delay(5000);
if
(licht >220 && Luikstatus == 1){Serial.println("Luik is open");}
if
(licht >220 && Luikstatus == 0){Serial.println("Luik openen"); openen();}
if
(licht <180 && Luikstatus == 0){Serial.println("Luik is dicht");}
if
(licht <180 && Luikstatus == 1){Serial.println("Luik sluiten"); sluiten();}}
void loop(){meten();}
//
17 berichten
• Pagina 2 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 60 gasten