Wpis z mikrobloga

#arduino #mikrokontrolery #help

Wiem, że głupi jestem, ale mam pytanko:

Dajmy przykładowo sterowanie diodami za pomocą pilota. I tak: załóżmy, że klikając jakiś przycisk jakaś tam dioda się zapala, gaśnie, etc. Tylko jak mam to zrobić, żeby po wciśnięciu jakiegoś klawisza wykonywała się pętla (np. mruganie) dopóki nie zostanie kliknięty wyłącznik?

Zły kod, ale na szybko przykładowy:

#include

#define irPin 11

#define red 7

#define white1 10

IRrecv irrecv(irPin);

decode_results results;

int redStatus = LOW;

int whiteStatus = LOW;

int whiteCycle = LOW;

oid setup() {

Serial.begin(9600);

irrecv.enableIRIn();

pinMode(red, OUTPUT);

pinMode(white1, OUTPUT);

}

void loop() {

if (irrecv.decode(&results)) {

if (results.value == 0x4BD4708F) {

redStatus = ~redStatus;

digitalWrite(red, redStatus);

}

if (results.value == 0x4BD408F7) {

whiteCycle = ~whiteCycle;

while(whiteCycle != LOW) {

digitalWrite(white1, HIGH);

delay(1000);

digitalWrite(white1, LOW);

delay(1000);

}

}

irrecv.resume();

}
  • 21
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Doradzę tak:

w .ino masz funkcję millis która zwraca czas w milisekundach od uruchomienia arduino i teraz sprawdzasz czy minęła ilość czasu, a nie umiem opisywać. To winno działać tak:

void loop()

{
  • Odpowiedz
@prezes_n: No tak, tylko mi chodzi troszkę o coś innego. Też nie umiem tłumaczyć za bardzo ;)

Chodzi o to, że:

Jeżeli kliknięto przycisk zaczyna się pętla (np. miganie diody, cokolwiek) i wykonuje się dopóki przycisk nie zostanie naciśnięty jeszcze raz.
  • Odpowiedz
@prezes_n: wiem :P

No tak, nie robić pętli, tylko polegać na głównej loop ... tylko nie wiem jak to pogodzę z innymi, ale w sumie :) Dobry kierunek :) Dzięki
  • Odpowiedz
@npsr: Niestety (co mnie wkurza) nie ma tutaj wątków. Wszystko trzeba robić "po kawałku" - całkiem inne myślenie i się przestawić nie mogę z obiektowego na niemalże instrukcje goto
  • Odpowiedz
@Migfirefox: kup sobie starter kit w nettigo :) Od razu możesz wziąć zapas rezystorków i jakieś diody dodatkowo:)

Fajna zabawka i koduje się łatwo (a przykładów w sieci pierdyliardy). Chociaż właśnie chcę przeportować aplikację do AtTiny i czystego C (żeby upchać 8kilo na attiny2313, które ma 2kilo :P) i teraz widzę, że studia informatyczne może nie były aż tak pozbawione sensu, jak mi się wydawało :P
  • Odpowiedz
Od razu możesz wziąć zapas rezystorków i jakieś diody dodatkowo


@npsr: Mam tego na kilogramy :}

Ja się programowania będę uczył od 0. Chciałbym sobie zrobić kilka fajnych rzeczy na tym. Wiem, że da się to zrobić szybciej i pewniej na sterownikach Siemensa, ale to droga zabawa :D
  • Odpowiedz
@npsr: I właśnie do tego potrzebuję Arduino. Jeśli miałbym w przyszłości swoje mieszkanie to chcę zrobić oświetlenie w 100% LED. Do tego kilka innych ciekawostek.
  • Odpowiedz
@Migfirefox: Nic trudnego :) Z resztą właśnie sobie robię głupie ale bajeranckie oświetlenie do kompa, sterowne z pilota nawet z funkcją mrugania w rytm muzyki :P Śpiewa, tańczy, robi kawę, tylko się kurcze na ATtiny nie mieści :P
  • Odpowiedz
@Migfirefox: a to to już w ogóle banał do zrobienia :) Jedyne co, to chciałbym faktycznie zrobić jedno urządzenie sterujące a nie montować mini układów do wszystkiego, ale to już wymagałoby ingerencji w instalację elektryczną == poważny remont :P
  • Odpowiedz
ale to już wymagałoby ingerencji w instalację elektryczną == poważny remont :P


@npsr: Mam kable aluminiowe w ścianach. Wiesz co mnie czeka :} Ale i tak może będę miał swoje mieszkanie, kiedyś i tam zaszaleję. Zamiast żarówek, diody od Cree.
  • Odpowiedz