Uitgang puls met IR code zolang als ingedrukt FFFFFFFF
13 berichten
• Pagina 2 van 2 • 1, 2
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Uitgang puls met IR code zolang als ingedrukt FFFFFFFF
Ik zou me niet zo druk maken over de snelheid van binnenkomen. Dat spul is zo traag als de nete:)
Advertisement
Re: Uitgang puls met IR code zolang als ingedrukt FFFFFFFF
@nicoverduin
@koepel
De werking is als volgt:
op het moment dat ik een knop indruk op de ir remote moet een uitgang hoog worden.
zodra ik deze knop loslaat moet de uitgang meteen weer laag worden.
ik gebruik 8 knoppen op de ir remote die alle 8 een aparte uitgang aansturen.
knop 1 = uitgang 1
knop 2 = uitgang 2
enz enz.
om de uitgang hoog te zetten bij een bepaalde Ir decoder value waarde lukt me wel.
daarvoor gebruik ik
op het moment dat de code 0xFFFFFFFF
hoeft arduino eigenlijk niets te doen omdat de uitgang dan al HIGH is gezet door de waarde die word ontvangen vòòr 0xFFFFFFF.
de Ir remote stuurt altijde de HEX waarde 0x1FE807F voordat hij daarna een constante stream van 0xFFFFFFF stuurt.
eigenlijk moet er een timer gaan lopen op het moment dat hij een waarde ontvangt. dat mag bij 0x1FE807F of 0xFFFFFFF zijn. Elke keer als hij een waarde ontvangen moet de timer opnieuw beginnen te lopen. zodat de timer niet afloopt op het moment dat ik de knop ingedrukt blijf houden. zorda ik dus de ir knop loslaat moet de timer gaan lopen
aan het einde van de timer moeten de uitgangen weer laag gezet worden.
de arduino ontvangt ongeveer 16-18 waardes per seconde als ik de ir remote ingedrukt houd
timeractive = true; klopt het dat hiermee de tier begint te lopen ?
timeractive = false; klopt het dat dit het einde van de timer is ?
en kan ik hier dan een actie aan koppelen ?
dus bijvoorbeeld:
ik hoor graag van jullie
@koepel
De werking is als volgt:
op het moment dat ik een knop indruk op de ir remote moet een uitgang hoog worden.
zodra ik deze knop loslaat moet de uitgang meteen weer laag worden.
ik gebruik 8 knoppen op de ir remote die alle 8 een aparte uitgang aansturen.
knop 1 = uitgang 1
knop 2 = uitgang 2
enz enz.
om de uitgang hoog te zetten bij een bepaalde Ir decoder value waarde lukt me wel.
daarvoor gebruik ik
- Code: Alles selecteren
if (results.value == 0x1FE807F)
{
digitalWrite(out8, HIGH);
}
op het moment dat de code 0xFFFFFFFF
hoeft arduino eigenlijk niets te doen omdat de uitgang dan al HIGH is gezet door de waarde die word ontvangen vòòr 0xFFFFFFF.
de Ir remote stuurt altijde de HEX waarde 0x1FE807F voordat hij daarna een constante stream van 0xFFFFFFF stuurt.
eigenlijk moet er een timer gaan lopen op het moment dat hij een waarde ontvangt. dat mag bij 0x1FE807F of 0xFFFFFFF zijn. Elke keer als hij een waarde ontvangen moet de timer opnieuw beginnen te lopen. zodat de timer niet afloopt op het moment dat ik de knop ingedrukt blijf houden. zorda ik dus de ir knop loslaat moet de timer gaan lopen
aan het einde van de timer moeten de uitgangen weer laag gezet worden.
de arduino ontvangt ongeveer 16-18 waardes per seconde als ik de ir remote ingedrukt houd
- Code: Alles selecteren
if (irrecv.decode(&results))
{
value = results.value; // The received value
irrecv.resume(); // Get ready for next value to be received
Serial.println(value, HEX);
previousMillis = millis(); // make a timestamp of this event.
timerActive = true; // activate the software timer.
timeractive = true; klopt het dat hiermee de tier begint te lopen ?
timeractive = false; klopt het dat dit het einde van de timer is ?
en kan ik hier dan een actie aan koppelen ?
dus bijvoorbeeld:
- Code: Alles selecteren
if
(timerActive = false;)
{
digitalWrite(out2, LOW);
digitalWrite(out3, LOW);
digitalWrite(out4, LOW);
digitalWrite(out5, LOW);
digitalWrite(out6, LOW);
digitalWrite(out7, LOW);
digitalWrite(out8, LOW);
digitalWrite(out9, LOW);
}
ik hoor graag van jullie
Re: Uitgang puls met IR code zolang als ingedrukt FFFFFFFF
Het (juiste) gebruik van millis() gaat op een bepaalde manier. Daar help ik je wel mee.
Je hebt een belangrijk deel weggelaten: drie regels commentaar.
Het deel van de timer ziet er zo uit:
Je hebt natuurlijk ook nog een #define REMOTE_TIMEOUT 200 nodig, of 500 ms, of iets anders. Ik weet niet hoe snel je kunt reageren.
Wat als er "1FE20DF", "10E03FC", "FFFFFFFF", "FFFFFFFF", "FFFFFFFF" binnen komt ? Dus er wordt heel snel overgeschakeld van de ene naar de andere knop.
Je hebt een belangrijk deel weggelaten: drie regels commentaar.
- Code: Alles selecteren
// ----------------------------------------
// Get data from the remote control
// ----------------------------------------
Het deel van de timer ziet er zo uit:
- Code: Alles selecteren
// ----------------------------------------
// Check if nothing was received for a while.
// ----------------------------------------
if( timerActive) // check if the software timer is active
{
if( millis() - previousMillis >= REMOTE_TIMEOUT)
{
timerActive = false; // stop this software timer.
// Nothing was received, and the timer has finished.
// That means that the button was released.
// Set all outputs low.
digitalWrite(out2, LOW);
...
}
}
Je hebt natuurlijk ook nog een #define REMOTE_TIMEOUT 200 nodig, of 500 ms, of iets anders. Ik weet niet hoe snel je kunt reageren.
Wat als er "1FE20DF", "10E03FC", "FFFFFFFF", "FFFFFFFF", "FFFFFFFF" binnen komt ? Dus er wordt heel snel overgeschakeld van de ene naar de andere knop.
13 berichten
• Pagina 2 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 21 gasten