Arduino Polska Forum

Pełna wersja: Dynamiczny wl/wyl zmierzchowy
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Hej
Usiluje zbudowac regulator zmierzchowy. Urzadzenie ma dzialac tak:
Im mniej swiatla dociera do czujnika tym jasniej musi swiecic sie dioda.
W tej chwili dziala dokladnie na odwrot (patrz kod ponizej) :/
Nie szukam gotowego rozwiazania, raczej podpowiedzi. Dziekuje!


Kod:
int led = 3;

void setup()
{
pinMode(A0,INPUT);
pinMode(led,OUTPUT);

}

void loop()
{
int odczyt = analogRead(A0);
if (odczyt <= 200)
{
 analogWrite(led, odczyt);
}
 

  else
   digitalWrite(led,LOW);
   delay (500);

}
Witam,
Najprościej użyć funkcji map ().
Pozdrawiam.
@reder-or skoro nie chcesz gotowca to zacznij od przeczytania dokumentacji do czujnika którego używasz i zrozumienia jak działa układ którego schematu nie zamieściłeś.
(06-04-2017, 16:04)namok napisał(a): [ -> ]@reder-or skoro nie chcesz gotowca to zacznij od przeczytania dokumentacji do czujnika którego używasz i zrozumienia jak działa układ którego schematu nie zamieściłeś.

No tak... sorry. Juz sie poprawiam.
To taki najprostszy jak na tym schemacie (bez diody na ktorej podawany jest wynik)
[Obrazek: l7_fritzing1.png]
To teraz zamień miejscami czujnik z rezystorem.
(06-04-2017, 16:31)namok napisał(a): [ -> ]To teraz zamień miejscami czujnik z rezystorem.

oczywiscie w moim ukladzie bylo na odwrot Smile  podpialem pierwszy lepszy schemat z internetu.... 

skorzystalem z funkcji map()
 dziala jak nalezy 
dziekuje Wam za wskazowki  
Kod:
int led = 3;

void setup()
{
pinMode(A0,INPUT);
pinMode(led,OUTPUT);
}

void loop()
{
int odczyt = analogRead(A0);
if (odczyt <= 200)
  {
    odczyt = map (odczyt, 200, 0, 0, 200);
    analogWrite(led, odczyt);
  }
   else
     digitalWrite(led,LOW);
     delay (50);
}