Moderator Matchless Geplaatst: 12 mei Moderator Geplaatst: 12 mei Ik zie bij sommige apparaten bijv 4 schakelaars en 4 leds maar 5 aansluitingen. Als ik op knop 3 duw gaat led3 aan enz. Druk ik nu op 4 dan gaat led 3 uit en led 4 aan. Hoe werkt dat met maar 5 of 4 draden naar de processor? Bijv met een arduino? Een smartphone is een hulpmiddel, geen levensstijl Kijk rond IN de wereld in plaats van voorover gebogen NAAR de wereld.
Big fellow Geplaatst: 12 mei Geplaatst: 12 mei Niet zo moeilijk 😉 . Pin in input mode zetten. Schakelaar van pin naar GND. LED van VCC naar een weerstand en dan naar de pin. Als je nu de schakelaar indrukt zal de LED aangaan, immers de pin wordt naar GND geschakeld. De CPU (Arduino) detecteert dit, doordat ook de pin naar GND gaat. De CPU zet de pin in output mode, en stuurt een "0", dus effectief gezien de pin naar GND. LED blijft vrolijk branden als de schakelaar wordt losgelaten. LED uitschakelen doe je door de pin naar input te zetten, al dan niet met een pull-up weerstand geactiveerd, en dan zal er op de pin ongeveer VCC verschijnen, dus de LED heeft dan geen voldoende spanningsverschil om te branden. “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Moderator Matchless Geplaatst: 13 mei Auteur Moderator Geplaatst: 13 mei Quote LED uitschakelen doe je door de pin naar input te zetten, al dan niet met een pull-up weerstand geactiveerd, en dan zal er op de pin ongeveer VCC verschijnen, dus de LED heeft dan geen voldoende spanningsverschil om te branden. Maar dat uitschakelen doet de processor dan toch en niet de gebruiker? Want als je nu knop 3 in drukt gaat led 3 aan maar als je nu knop 3 nogmaals indrukt staat de pin nog steeds in output. Dan werkt het dus niet. Een smartphone is een hulpmiddel, geen levensstijl Kijk rond IN de wereld in plaats van voorover gebogen NAAR de wereld.
Big fellow Geplaatst: 13 mei Geplaatst: 13 mei Dus je wilt de led met de knop ook uit kunnen schakelen? “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Moderator Matchless Geplaatst: 13 mei Auteur Moderator Geplaatst: 13 mei Yep, ik moet je hersentjes toch een beetje laten werken 😁 Een smartphone is een hulpmiddel, geen levensstijl Kijk rond IN de wereld in plaats van voorover gebogen NAAR de wereld.
Big fellow Geplaatst: 13 mei Geplaatst: 13 mei Exact dezelfde manier, echter in plaats van de IO pin vast te zetten als output, schakel je die elke paar ms naar de input mode. Dan kijk je of de IO pin nog steeds aan GND hangt, en zo ja, dan schakel je de output uit. Uiteraard moet je na het inschakelen wel eerst detecteren dat de pin niet aan GND hangt, want dat betekent dat de schakelaar is losgelaten. Anders zal het altijd blijven "knipperen" bij het inschakelen, en in een random stand blijven zodra de schakelaar wordt losgelaten .... “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Big fellow Geplaatst: 30 mei Geplaatst: 30 mei En @Matchless; heb je het geprobeerd? “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Moderator Matchless Geplaatst: 31 mei Auteur Moderator Geplaatst: 31 mei Ik krijg er door de drukte nog geen tijd voor 🥴 (evenementen seizoen) Een smartphone is een hulpmiddel, geen levensstijl Kijk rond IN de wereld in plaats van voorover gebogen NAAR de wereld.
Big fellow Geplaatst: 4 juni Geplaatst: 4 juni Dit werkt bij mij. Voer dit elke 100ms ofzo uit en het gaat goedkomen. if (startFlag) { // Button pin is in OUTPUT mode pinMode(SW_STRT, INPUT_PULLUP); // Change temporarily to INPUT mode if (!digitalRead(SW_STRT)) { // Button is pressed startFlag = false; // Set flag indicating START is INactive } else { // Button is not pressed pinMode(SW_STRT, OUTPUT); // Back to OUTPUT mode digitalWrite(SW_STRT, LOW); // Drive pin LOW again --> LED ON } } else { // Button pin is in INPUT mode if (!digitalRead(SW_STRT)) { // Button is pressed startFlag = true; // Set flag indicating START is active pinMode(SW_STRT, OUTPUT); // Change to output digitalWrite(SW_STRT, LOW); // Drive LOW --> LED ON } } Anode van de LED hangt via een weerstand aan de VCC, en de kathode hangt aan de GPIO pin. De GPIO pin gaat naar een drukknop toe die naar GND gaat. In mijn geval de "Start knop". Zodra je de knop indrukt gaat de LED meteen aan en die blijft aan totdat je de knop nogmaals indrukt. De boolean flag "startFlag" geeft de status weer van de schakelaar. Succes ermee 🙂 “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Big fellow Geplaatst: 9 juni Geplaatst: 9 juni (aangepast) Ik liep tegen een probleem aan.... Als de knop ingedrukt bleef ging de status continue aan/uit . Dus maar een kleine wijziging aangebracht die dat tegengaat. bool stopFlag, stopPressed; // Flags used in the routine if (stopFlag) { // Button pin is in OUTPUT mode pinMode(SW_STOP, INPUT_PULLUP); // Change temporarily to INPUT mode if (!digitalRead(SW_STOP)) { // Button is pressed if (!stopPressed) { // This is not a repeat reading stopFlag = false; // Set flag indicating STOP is INactive } stopPressed = true; // Keep track if button is released or not } else { // Button is not pressed pinMode(SW_STOP, OUTPUT); // Back to OUTPUT mode digitalWrite(SW_STOP, LOW); // Drive pin LOW again --> LED ON stopPressed = false; // Keep track if button is released or not } } else { // Button pin is in INPUT mode if (!digitalRead(SW_STOP)) { // Button is pressed if (!stopPressed) { // This is not a repeat reading stopFlag = true; // Set flag indicating STOP is active stopPressed = true; // Keep track if button is released or not pinMode(SW_STOP, OUTPUT); // Change to output digitalWrite(SW_STOP, LOW); // Drive LOW --> LED ON } } else { stopPressed = false; // Keep track if button is released or not } } (Ja, ik heb een start en stop knop in mijn applicatie 😉 ) 9 juni aangepast door Big fellow “Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill
Aanbevolen berichten
Maak een account aan of log in om te reageren
Je moet een lid zijn om een reactie te kunnen achterlaten
Account aanmaken
Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!
Registreer een nieuwe accountInloggen
Heb je reeds een account? Log hier in.
Nu inloggen