• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
zapalanie LED
#10
W tym kodzie masz taki bajzel, że nawet nie będę tego dotykał. Poukładaj sobie klamrami co do czego należy {}. Np. w tej linijce są trzy błędy: if(PamietajCzas = TerazCzas - 300); pierwszy to "=" nie robi porównania tylko przypisanie, porównanie to ==, poza tym nigdy nie rób == bo może ta chwila była 5ns temu i już nigdy się nie spełni (lepiej => lub =< w zależności od kontekstu), po trzecie kończysz if za nawiasem średnikiem więc on nic nie zrobi.
Nie wiem czy z tego skorzystasz, w tym kodzie ma coś piknąć/mignąć bez blokowania programu (przycisk na 2, led czy buzer na 13):
Kod:
const int buzzer=13;
const int button=2;
boolean stanbuzzera=0;

void setup() {
 // put your setup code here, to run once:
pinMode(buzzer,OUTPUT);
pinMode(button,INPUT_PULLUP);

}

void loop() {
 // put your main code here, to run repeatedly:
 if(!digitalRead(2)||stanbuzzera)  dzwiek(500,10,buzzer);
 
 

}

void dzwiek(uint16_t dlugosc, uint16_t pikniec, uint16_t pin) //(dlugosc piku, ile pikniec, na ktory pin)
{
 static uint16_t aktualnyPik=0;
static boolean stanpoprzedni=0;
static uint32_t lasttime=0;
uint32_t currenttime=millis();
// na razie zakladam 5 pikniec co 1000ms
if(currenttime-lasttime>=(uint32_t)dlugosc)
{
 lasttime=currenttime;
 if( aktualnyPik++ <(pikniec*2))//mnozymy *2 by pikniec bylo 10, nie zmian stanu
 {
   digitalWrite(pin,!digitalRead(pin));
   stanbuzzera=1;
 }
 else
 {
  aktualnyPik=0;
  stanbuzzera=0;
 }

}
 
}

Po tak przygotowanej funkcji możesz sobie wywołać ją podając jaki czas piknięć, ile ich ma być, i na jakim pinie: dzwiek(500,10,buzzer);. I w kodzie możesz sobie robić cokolwiek innego (byle też nie blokować delay).
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
zapalanie LED - przez raczzeek - 23-11-2018, 22:49
zapalanie LED - przez zbyszko125 - 23-11-2018, 23:37
RE: zapalanie LED - przez kaczakat - 24-11-2018, 06:01
RE: zapalanie LED - przez raczzeek - 26-11-2018, 19:47
RE: zapalanie LED - przez kaczakat - 26-11-2018, 21:46
RE: zapalanie LED - przez raczzeek - 06-12-2018, 00:03
RE: zapalanie LED - przez es2 - 06-12-2018, 00:08
RE: zapalanie LED - przez kaczakat - 06-12-2018, 00:23
RE: zapalanie LED - przez raczzeek - 08-12-2018, 23:48
RE: zapalanie LED - przez kaczakat - 09-12-2018, 01:03
RE: zapalanie LED - przez raczzeek - 09-12-2018, 12:56
RE: zapalanie LED - przez kaczakat - 09-12-2018, 16:25

Skocz do:


Przeglądający: 1 gości