• 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
Fotoresystor
#1
Witam mam problem, ponieważ chcę za pomocą fotorezystora sterować diodami coś w stylu diod na parkingach jeżeli wolne to zielone zajęte czerwone. Mam kod w którym ten warunek spełnia czerwona dioda czyli jak zostanie zasłonięty foto rezystor zaświeci się na czerwono ale cały czas się świeci i nie wiem gdzie jest problem. Kod poniżej bym był wdzięczny za pomoc. Smile
Kod:
const int pResistor = A0;
const int ledPinG=9;      
const int ledPinR=8;


int value;        

void setup(){
pinMode(ledPinG, OUTPUT);  
pinMode(ledPinR, OUTPUT);
pinMode(pResistor, INPUT);
}

void loop(){
 value = analogRead(pResistor);
 

 if (value > 1){
   digitalWrite(ledPinG, LOW);  
 }
 if (value < 25){
   digitalWrite(ledPinR, HIGH);
 }

 delay(500);
}
 
Odpowiedź
#2
A jaką wartość podaje ci value? zmienia się kiedy go zasłaniasz?
 
Odpowiedź
#3
(12-03-2016, 20:39)Magikkomputerowy napisał(a): A jaką wartość podaje ci value? zmienia się kiedy go zasłaniasz?

właśnie nie pokazuje mi żadnej wartości
 
Odpowiedź
#4
Jak podłączyłeś fotorezystor jako dzielnik napięcia z innym rezystorem ? bo ja tak mam i działa bez zarzutów Smile
 
Odpowiedź
#5
Odczyt z A0 jest w przedziale 0-1023. Sprawdź najpierw w jakim zakresie masz odczyty z Twojego fotorezystora (oczywiście jako dzielnika napięcia) . Wykorzystaj monitor portu szeregowego. Z Twojego kodu wynika, że jeśli odczytana z fotorezystora wartość jest mniejsza niż 25 to dioda ma się świecić. Jestem prawie pewien, że w warunkach w których pracujesz wartości te będą wynosić ok 400-700 (nie wiem czy siedzisz przy lampce czy może w plenerze na słońcu). Najpierw sprawdź jakie to są wartości a następnie zakryj fotorezystor ręką i zobacz jak się zmieniły. Jeśli zobaczysz że przy oświetleniu przy którym pracujesz jest np 500 a po zakryciu ręką np 900 to już wiesz, że dioda powinna zapalić się np przy wartości 600. Wtedy piszesz:
If (value>600)
{
digitalWrite (ledPinR, HIGH);
digitalWrite (ledPinG, LOW);
etc etc.

Mam nadzieje ze pomogłem ;-)

P.S.
Jakby co to pisz na PW..Twój pomysł jest bardzo prosty wiec chętnie pomogę ;-)
 
Odpowiedź
#6
Jak połączyłeś foto do zasilania.
Podejrzewam ze jedna noga do 5v druga do uC ??
[Obrazek: banerelektronika.jpg]



Jeśli pomogłem podziękuj punktem reputacji Wink
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości