Witam.
Jestem jednym z waszych cichych bywalców na elektroda.pl i postanowiłem zrobić automatyczne zamykanie rolety i otwierania w zależności czy jest jasno czy ciemno ;] Zrobiłem układ oparty na Atmega8, komparator LM324, foto-tranzystor(mierzy natężenie na zewnątrz okna, i CNY70 jako krańcówka ( jak wykryje małą łatkę czarna na rolecie to się zatrzyma roleta). Wszystko pod względem elektrycznym działa i buczy;] Natomiast mam problem z kodem;/ wynikający z tego ze zaczynam zabawę z AVRami oto Kod:
problem mianowicie jest taki ze gdy roleta się zamyka(robi się ciemno) i natrafi na krańcówkę silnik się wyłącza i jest ok. Natomiast gdy chcemy przejść do następnego stanu( jest jasno) a krańcówka na PINC,5 ciągle wykrywa koniec rolety ( bo tam się zatrzymała co jest oczywiste) jak zrobić żeby zostawił ten warunek co jest spełniony z krańcówką i przeszedł do if bit_is_set(PINC,4) bo nie chce do tego przejść gdy widzi krańcówke:(? proszę o pomoc w kodzie
Jestem jednym z waszych cichych bywalców na elektroda.pl i postanowiłem zrobić automatyczne zamykanie rolety i otwierania w zależności czy jest jasno czy ciemno ;] Zrobiłem układ oparty na Atmega8, komparator LM324, foto-tranzystor(mierzy natężenie na zewnątrz okna, i CNY70 jako krańcówka ( jak wykryje małą łatkę czarna na rolecie to się zatrzyma roleta). Wszystko pod względem elektrycznym działa i buczy;] Natomiast mam problem z kodem;/ wynikający z tego ze zaczynam zabawę z AVRami oto Kod:
{
if bit_is_clear(PINC,4) // wyjscie z komparatora (FOTO)
{ for (i=0;i<1;i++)
{
delay(z);
}
if bit_is_clear(PINC,4)
{
{
PORTB &= ~_BV(4); //wyłaczenie Mostka H
PORTB |= _BV(1); //właczenie przekaznika zasilania silnika
a=0;
}
if (bit_is_clear(PINC,5)&&(a==0))//krańcówka
{
PORTB &=~_BV(1);
a=1;
}
}
}
if bit_is_set(PINC,4) // sprawdzanie 2 razy warunku po czasie z
{ for (i=0;i<1;i++)
{
delay(z);
}
if bit_is_set(PINC,4)
{
{
PORTB |= _BV(4); // Mostek H włączony
PORTB |= _BV(1); //właczenie przekaznika zasilania silnika
a=1;
}
if (bit_is_clear(PINC,5)&&(a==1))
{
PORTB &=~_BV(1);
a=0;
}
}
}
}problem mianowicie jest taki ze gdy roleta się zamyka(robi się ciemno) i natrafi na krańcówkę silnik się wyłącza i jest ok. Natomiast gdy chcemy przejść do następnego stanu( jest jasno) a krańcówka na PINC,5 ciągle wykrywa koniec rolety ( bo tam się zatrzymała co jest oczywiste) jak zrobić żeby zostawił ten warunek co jest spełniony z krańcówką i przeszedł do if bit_is_set(PINC,4) bo nie chce do tego przejść gdy widzi krańcówke:(? proszę o pomoc w kodzie