• 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
Prośba o pomoc w kodzie.
#1
Witam potrzebuję zrobić włącznik typu on/off na Arduino z tym że będzie układ działał na akumulatorze więc wyszukałem w internecie że można Atmegę uśpić znalazłem kod który ładnie budzi Arduino ze snu ale działa na zasadzie że po naciśnięciu przycisku wybudza Arduino i po pewnym czasie z automatu go usypia a mi jest potrzebne tak że by można go było uśpić i wybudzić przyciskiem zamieszczam ten kod z prośbą może by ktoś się nad pochylił i podpowiedział jak go zmienić żeby działał tak jak chcę 
Kod:
#include <avr/sleep.h>
const int ledPin = 13;
const int inputPin = 2;
volatile boolean flag;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(inputPin, INPUT_PULLUP);
goToSleep();
}
void loop()
{
if(flag)
{
doSomething();
flag = false;
goToSleep();
}
}
void setFlag()
{
flag = true;
}
void goToSleep()
{
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
attachInterrupt(0, setFlag, LOW); //pin D2
sleep_mode();//uśpienie aż do podania sygnału niskiego
sleep_disable();
detachInterrupt(0);
}
void doSomething()
{

for(int i =0; i<20; i++)

{

digitalWrite(ledPin, HIGH);

delay(200);

digitalWrite(ledPin, LOW);

delay(200);

}

}
 
Odpowiedź
#2
Do usypiania służy w tym kodzie funkcja goToSleep(), po prostu robisz to jedną linijką: "if (przyciskWcisniety) goToSleep();".
Zmienną przyciskWciśniety ustawiasz na 1 gdy jest wciśnięty przycisk, oczywiście obsłuż drgania styków.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości