drukknop
12 berichten
• Pagina 1 van 2 • 1, 2
drukknop
ik ben nieuw hier en als hobbyist met de arduino.
nu heb ik een schets gemaakt voor het knipperen van lampjes, en dit werkt naar behoren, maar nu zou ik graag na een druk op een knopje een ander patroon willen.
wat ik ook graag zou weten is hoe je bv 2 ledjes die langzaam knipperen na 1 druk op de knop 4x snel knipperen en daarna weer langzaam
heeft iemand een idee hoe je deze verwijzing maakt?
al vast bedankt voor het mee denken.
gr romano
nu heb ik een schets gemaakt voor het knipperen van lampjes, en dit werkt naar behoren, maar nu zou ik graag na een druk op een knopje een ander patroon willen.
wat ik ook graag zou weten is hoe je bv 2 ledjes die langzaam knipperen na 1 druk op de knop 4x snel knipperen en daarna weer langzaam
heeft iemand een idee hoe je deze verwijzing maakt?
al vast bedankt voor het mee denken.
gr romano
Advertisement
Re: drukknop
Hallo, en welkom op dit forum.
Kun je vertellen welk Arduino board je hebt en kun je de sketch laten zien.
De sketch kun je tussen code-tags zetten, dan is het beter leesbaar. Er is een knop "Code" of je kunt "Select a Syntac" kiezen en dan "C++".
Het is mogelijk om dat met delay() te doen, maar dan ben je erg beperkt.
Alleen maar wisselen tussen langzaam en snel knipperen lukt misschien nog wel. Maar als je bijvoorbeeld beide leds elk een eigen knipperpatroon wilt laten doen, dan lukt dat niet meer met delay().
Je kunt het patroon in een tabel zetten, en die tabel aflopen, en dat gecombineerd met millis().
Ken je de BlinkWithoutDelay ? Lees dat eens door, je hebt het waarschijnlijk sowieso een keer nodig.
https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
Op die manier kun je snel reageren op knoppen en andere dingen, terwijl ondertussen toch allerlei code wordt uitgevoerd.
Kun je vertellen welk Arduino board je hebt en kun je de sketch laten zien.
De sketch kun je tussen code-tags zetten, dan is het beter leesbaar. Er is een knop "Code" of je kunt "Select a Syntac" kiezen en dan "C++".
Het is mogelijk om dat met delay() te doen, maar dan ben je erg beperkt.
Alleen maar wisselen tussen langzaam en snel knipperen lukt misschien nog wel. Maar als je bijvoorbeeld beide leds elk een eigen knipperpatroon wilt laten doen, dan lukt dat niet meer met delay().
Je kunt het patroon in een tabel zetten, en die tabel aflopen, en dat gecombineerd met millis().
Ken je de BlinkWithoutDelay ? Lees dat eens door, je hebt het waarschijnlijk sowieso een keer nodig.
https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
Op die manier kun je snel reageren op knoppen en andere dingen, terwijl ondertussen toch allerlei code wordt uitgevoerd.
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: drukknop
De tips van Koepel zijn zeer goed, eens je deze onder de knie hebt, hier terug een hele brok (State Machine).
http://teachmetomake.com/wordpress/ardu ... te-machine
http://teachmetomake.com/wordpress/ardu ... te-machine
Re: drukknop
Met millis() (en een tabel) kun van alles laten knipperen en toeteren, los van elkaar. Als je je sketch laat zien, dan weet ik hoe ver je bent en hoe goed je kunt programmeren
Voor een app op Android zijn er verschillende mogelijkheden met Bluetooth. Ik heb het zelf nog niet gebruikt. Voor een iPhone kun je zoeken naar een app.
Voor een app op Android zijn er verschillende mogelijkheden met Bluetooth. Ik heb het zelf nog niet gebruikt. Voor een iPhone kun je zoeken naar een app.
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: drukknop
Hey maan69,
Het is beter niet in prive bericht te posten op deze manier kunnen de andere leden niet reageren.
Wat mij direct opvalt zijn de <delays> dit werkt niet goed op deze manier.Verder zijn er nog tal van gebreken in de code.
Ik stel voor dat je eerst begint met de basis voorbeelden uit de IDE en dan zoals Koepel reeds stelde te experimenteren met Blink without delay.
Als je dit onder de knie hebt zal veel voor jouw duidelijk worden denk ik.
Bekijk ook even deze link https://learn.adafruit.com/multi-taskin ... -the-delay.
Het is beter niet in prive bericht te posten op deze manier kunnen de andere leden niet reageren.
Wat mij direct opvalt zijn de <delays> dit werkt niet goed op deze manier.Verder zijn er nog tal van gebreken in de code.
Ik stel voor dat je eerst begint met de basis voorbeelden uit de IDE en dan zoals Koepel reeds stelde te experimenteren met Blink without delay.
Als je dit onder de knie hebt zal veel voor jouw duidelijk worden denk ik.
Bekijk ook even deze link https://learn.adafruit.com/multi-taskin ... -the-delay.
Re: drukknop
misschien is het handiger als ik even uit leg wat de bedoeling is.
ik heb een modelbrandweerauto en wil de ledjes en sirene via bluetooth aan en uit kunnen zetten.
de loop voor de ledjes heb ik en de loop voor de sirene ook maar hoe kan ik dit via een drukknop aan en uit zetten
ook wil ik de sirene door een druk op de knop een paar keer sneller laten gaan waardna hij vanzelf weer langzaam gaat
dus 1 knop om de loop voor ledjes aan en uit te zetten
1 knop sirene aan en uit
en 1 knop dat als de sirene aanstaa hij dan tijdelijk sneller gaat.
hier onder de loops zoals ik ze nu heb.
wie kan mij helpen?
int pin =8;
void setup()
{
}
void loop() {
tone(pin, 500, 1000);
delay (1000);
tone(pin, 375, 1000);
delay(1000);
tone(pin, 500, 500);
delay (500);
tone(pin, 375, 500);
delay(500);
tone(pin, 500, 500);
delay (500);
tone(pin, 375, 500);
delay(500);
tone(pin, 500, 500);
delay (500);
tone(pin, 375, 500);
delay(500);
tone(pin, 500, 500);
delay (500);
tone(pin, 375, 500);
delay(500);
en voor de ledjes
void setup() {
pinMode(pin8, OUTPUT);
pinMode(pin7, OUTPUT);
}
void loop() {
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
delay(50);
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
}
ik heb een modelbrandweerauto en wil de ledjes en sirene via bluetooth aan en uit kunnen zetten.
de loop voor de ledjes heb ik en de loop voor de sirene ook maar hoe kan ik dit via een drukknop aan en uit zetten
ook wil ik de sirene door een druk op de knop een paar keer sneller laten gaan waardna hij vanzelf weer langzaam gaat
dus 1 knop om de loop voor ledjes aan en uit te zetten
1 knop sirene aan en uit
en 1 knop dat als de sirene aanstaa hij dan tijdelijk sneller gaat.
hier onder de loops zoals ik ze nu heb.
wie kan mij helpen?
int pin =8;
void setup()
{
}
void loop() {
tone(pin, 500, 1000);
delay (1000);
tone(pin, 375, 1000);
delay(1000);
tone(pin, 500, 500);
delay (500);
tone(pin, 375, 500);
delay(500);
tone(pin, 500, 500);
delay (500);
tone(pin, 375, 500);
delay(500);
tone(pin, 500, 500);
delay (500);
tone(pin, 375, 500);
delay(500);
tone(pin, 500, 500);
delay (500);
tone(pin, 375, 500);
delay(500);
en voor de ledjes
void setup() {
pinMode(pin8, OUTPUT);
pinMode(pin7, OUTPUT);
}
void loop() {
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
delay(50);
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
digitalWrite(pin8,, HIGH);
delay(50);
digitalWrite(pin8, LOW);
delay(50);
digitalWrite(pin7,HIGH);
delay (50);
digitalWrite(pin7,LOW);
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: drukknop
Je kan niet 2x een zelfde functie naam hebben loop in dit geval.
Re: drukknop
en je hoofd loop zal je ook aan moeten passen,
kijk maar eens naar blink without delay voorbeelden
kijk maar eens naar blink without delay voorbeelden
Met vriendelijke groet Arjan
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: drukknop
Daarnaast zou ik eens wat basis voorbeelden bekijken die in de IDE zijn opgenomen. Want bovenstaand gaat nooit never lopen....
Re: drukknop
beste Nico,
de twee losse loops die werken nu als ik ze opzich zelf gebruik, maar zou het graag willen laten werken met een knop
heb je een idee hoe dit werkt?
gr romano
de twee losse loops die werken nu als ik ze opzich zelf gebruik, maar zou het graag willen laten werken met een knop
heb je een idee hoe dit werkt?
gr romano
12 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 12 gasten