relais als ingang
6 berichten
• Pagina 1 van 1
relais als ingang
hallo daar .
ik ben al een tijdje aan het proberen , maar het wil nog niet lukken
wat is de bedoeling , ik heb in de de cv ketel over de pomp een relais gezet, nu wil ik de vloerverwarming pomp schakelen door middel van arduino
maar daar komt hij het relais contact is geen puls maar een constante (bi stabiel) en deze komt op een ingang , nu moet de ingang een Debounce krijgen.
tot mij verbazing wil dit niet goed lukken.
kan iemand mij op weg helpen?
ik ben al een tijdje aan het proberen , maar het wil nog niet lukken
wat is de bedoeling , ik heb in de de cv ketel over de pomp een relais gezet, nu wil ik de vloerverwarming pomp schakelen door middel van arduino
maar daar komt hij het relais contact is geen puls maar een constante (bi stabiel) en deze komt op een ingang , nu moet de ingang een Debounce krijgen.
tot mij verbazing wil dit niet goed lukken.
kan iemand mij op weg helpen?
- Code: Alles selecteren
const int buttonPin = 50; // the number of the pushbutton pin
const int ledPin = 43; // the number of the LED pin
// Variables will change:
int ledState = HIGH; // the current state of the output pin
int buttonState; // the current reading from the input pin
int lastButtonState = LOW; // the previous reading from the input pin
// the following variables are unsigned longs because the time, measured in
// milliseconds, will quickly become a bigger number than can be stored in an int.
unsigned long lastDebounceTime = 0; // the last time the output pin was toggled
unsigned long debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
}
void loop() {
// read the state of the switch into a local variable:
int reading = digitalRead(buttonPin);
// check to see if you just pressed the button
// (i.e. the input went from LOW to HIGH), and you've waited long enough
// since the last press to ignore any noise:
// If the switch changed, due to noise or pressing:
if (reading != lastButtonState) {
// reset the debouncing timer
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
// whatever the reading is at, it's been there for longer than the debounce
// delay, so take it as the actual current state:
// if the button state has changed:
if (reading != buttonState) {
buttonState = reading;
// only toggle the LED if the new button state is HIGH
if (buttonState == HIGH) {
}
}
}
// set the LED:
digitalWrite(ledPin,HIGH );
}
Advertisement
Re: relais als ingang
kijk eens naar lastbuttonstate die word nergens aangezet
paul deelen
shooter@home.nl
shooter@home.nl
Re: relais als ingang
Hoi Paul, moet ik dan de lastbuttonstate op High zetten om hem actief te maken?, de code heb ik van internet geplukt en een klein beetje aangepast. dact dat ik de togle funtie er uit kon halen , maar dan reageert de boel niet meer.
ik snap dat als ik het relais contact aanbied (potentiaal) dan komt er op de ingang veel ruis binnen .
ga er mee aan de slag Thanks
ik snap dat als ik het relais contact aanbied (potentiaal) dan komt er op de ingang veel ruis binnen .
ga er mee aan de slag Thanks
Re: relais als ingang
Waar heb je de code vandaan ?
Het lijkt veel op dit: https://arduinoforum.nl/viewtopic.php?f=9&t=2788.
Dat heb ik opgegeven, omdat ik niet begreep wat er moest gebeuren
Jouw beschrijving van de CV ketel begrijp ik ook niet, maar daar gaat het niet om.
Je hebt blijkbaar nog een vrij contact op een relais, en je wilt niet de aansturing van het relais meten (dat is niet zo moeilijk met een opto-coupler en een weerstand) maar je wilt naar het contact kijken. Dat dendert, dus daar wil je iets voor.
Je zou kunnen kijken of de ingang van de Arduino gedurende 50 ms stabiel is, en dan pas dat overnemen. Dat kan met millis(), maar dat werkt nu niet vanwege het ontbreken van de lastButtonState zetten zoals shooter al schreef.
De tweede stap is wat je daarmee wilt doen. Ik begrijp niet wat je met een toggle bedoelt, zat er een toggle in de oorspronkelijke code ?
Je zou een library kunnen gebruiken, zoals Bounce2: https://github.com/thomasfredericks/Bounce2.
Je zou het ook zelf kunnen schrijven. Dat is het nodig om te kijken naar een verandering van de ingang. Daar is het "State Change Detection" voorbeeld voor: https://www.arduino.cc/en/Tutorial/StateChangeDetection.
Ik zou de variabelen 'buttonState' en 'lastButtonState' van dat voorbeeld aanhouden. Dan zou ik voor de uiteindelijke waarde een naam geven zoals: "FilteredButtonState", "buttonStateOntdendert", "debouncedButtonState", of zo iets.
Ik voeg graag een boolean variabele toe, om de millis() timer uit en aan te zetten. Bij jouw sketch gaat het na 50 dagen verkeerd.
Wil je de led aanzetten als het relais aan is ?
Stel dat je het moment wilt weten dat de "debouncedButtonState" van waarde wijzigt. Dan heb je misschien een tweede "State Change Detection" nodig, en dan komt er ook een "lastDebouncedButtonState" bij. Dit weet ik nog niet zeker, zover heb ik nog niet nagedacht.
Uiteindelijk krijg je dan een combinatie van de "State Change Detection" met een single shot timer (https://github.com/Koepel/Fun_with_millis/blob/master/millis_single_delay.ino).
Dit is allemaal wel leuk en aardig, maar de allerbelangrijkste vraag is: Wat is je pullup weerstand ?
Het lijkt veel op dit: https://arduinoforum.nl/viewtopic.php?f=9&t=2788.
Dat heb ik opgegeven, omdat ik niet begreep wat er moest gebeuren
Jouw beschrijving van de CV ketel begrijp ik ook niet, maar daar gaat het niet om.
Je hebt blijkbaar nog een vrij contact op een relais, en je wilt niet de aansturing van het relais meten (dat is niet zo moeilijk met een opto-coupler en een weerstand) maar je wilt naar het contact kijken. Dat dendert, dus daar wil je iets voor.
Je zou kunnen kijken of de ingang van de Arduino gedurende 50 ms stabiel is, en dan pas dat overnemen. Dat kan met millis(), maar dat werkt nu niet vanwege het ontbreken van de lastButtonState zetten zoals shooter al schreef.
De tweede stap is wat je daarmee wilt doen. Ik begrijp niet wat je met een toggle bedoelt, zat er een toggle in de oorspronkelijke code ?
Je zou een library kunnen gebruiken, zoals Bounce2: https://github.com/thomasfredericks/Bounce2.
Je zou het ook zelf kunnen schrijven. Dat is het nodig om te kijken naar een verandering van de ingang. Daar is het "State Change Detection" voorbeeld voor: https://www.arduino.cc/en/Tutorial/StateChangeDetection.
Ik zou de variabelen 'buttonState' en 'lastButtonState' van dat voorbeeld aanhouden. Dan zou ik voor de uiteindelijke waarde een naam geven zoals: "FilteredButtonState", "buttonStateOntdendert", "debouncedButtonState", of zo iets.
Ik voeg graag een boolean variabele toe, om de millis() timer uit en aan te zetten. Bij jouw sketch gaat het na 50 dagen verkeerd.
Wil je de led aanzetten als het relais aan is ?
Stel dat je het moment wilt weten dat de "debouncedButtonState" van waarde wijzigt. Dan heb je misschien een tweede "State Change Detection" nodig, en dan komt er ook een "lastDebouncedButtonState" bij. Dit weet ik nog niet zeker, zover heb ik nog niet nagedacht.
Uiteindelijk krijg je dan een combinatie van de "State Change Detection" met een single shot timer (https://github.com/Koepel/Fun_with_millis/blob/master/millis_single_delay.ino).
Dit is allemaal wel leuk en aardig, maar de allerbelangrijkste vraag is: Wat is je pullup weerstand ?
Re: relais als ingang
lees je eigen programma eens , en probeer het te snappen,vooral wat lastbuttonstate is en waar wordt die dan gezet.
paul deelen
shooter@home.nl
shooter@home.nl
Re: relais als ingang
nou er staat mij nog veel uitzoek werk te doen ,maar leerzaam thans heren .
al het werk zien jullie het
al het werk zien jullie het
6 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 37 gasten