Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATmega16][C] Transoptor CNY70, czarna linia nie zmienia odczytu ADC.

kankuro666 16 Lut 2013 16:00 2559 15
  • #1 16 Lut 2013 16:00
    kankuro666
    Poziom 9  

    Witam, robię line-followera, i próbuję zaprogramować transoptory odbiciowe CNY70.

    Podłączone są dobrze, rzeystor 240Ω do fotodiody, i fototranzystor przez 10k do VCC.

    Napisałem program, żeby pokazywało odczyty ADC na wyświetlaczu (z jednego transoptora), ale normalnie pokazuje 1023, dopiero jak podłożę białą kartkę pod nią poniżej 5mm to dopiero zmniejszają się wartości, ale jak wszyscy wiedzą line-followery i turnieje z ich udziałem polegają na tym, aby robot jeździł po czarnej linii, CNY70 ma zakres widzenia czarnej linii do ok 1,5cm, ale na wyświetlaczu jak dam czarną kartkę to jest dalej 1023, jakbym nic nie podkładał.

    Buduję robota z kitu AVT3028 B ( Link ), i w pdf nawet są zdjęcia tegoż robota na linii czarnej. [mam inne kółka, CNY70 są 5,5mm nad podłożem]

    Mój program:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 15
  • #2 16 Lut 2013 16:05
    SeerKaza
    Poziom 20  

    Może jakiś schemacik ?? Bo nie wiemy gdzie ty tym ADC mierzysz napięcie.

    0
  • #3 16 Lut 2013 16:10
    kankuro666
    Poziom 9  

    [ATmega16][C] Transoptor CNY70, czarna linia nie zmienia odczytu ADC. [ATmega16][C] Transoptor CNY70, czarna linia nie zmienia odczytu ADC. [ATmega16][C] Transoptor CNY70, czarna linia nie zmienia odczytu ADC. [ATmega16][C] Transoptor CNY70, czarna linia nie zmienia odczytu ADC.

    opisałem gdzie i jaki transoptor jest

    0
  • #4 16 Lut 2013 16:22
    SeerKaza
    Poziom 20  

    Wszystko działa prawidłowo. W momencie gdy nic nie jest podłożone albo podkładasz czarną kartkę do fototranzystora nie dociera światło jest zamknięty przez rezystor niepłytnie prąd niema na nim spadku napięcia całe napięcie jest na fototranzystorze i na ADC. W momencie jak podkładasz kartkę fototranzystor się otwiera i zwiera wejscie ADC do masy przez co napięcie się zmniejsza jak jak i wyświetlana wartość. Jeśli chcesz by było odwrotnie daj rezystor mierzy emiter a mase kolektor do vcc a wejscie adc do emitera

    0
  • #5 16 Lut 2013 16:28
    tmf
    Moderator Mikrokontrolery Projektowanie

    Możesz zwiększyć rezystor podciągający, z drugiej strony ten transoptor właśnie działa na małe odległości (kilka mm), poza tym ma diodę IR, to co jest dla nas czarne niekoniecznie musi dobrze odbijać IR (dioda tam ma 950 nm).

    0
  • #6 16 Lut 2013 16:30
    kankuro666
    Poziom 9  

    no ale jak już wcześniej mówiłem, po co mam zmieniać coś w układzie, skoro właśnie w ten sposób jaki teraz jest twórcy tego robota (link w 1 poście) robot jest zrobiony żeby jeździł na czarnej linii? w schematach i konstrukcji nie ma błędu, nie wiem tylko jak napisać program, żeby dla niego nicość nie równała się czarnemu kolorowi, tylko żeby odróżniał kontrasty

    Cytat:


    Rolę czujników linii pełni
    7 transoptorów odbiciowych CNY70 (fotografia 1), których zasada funkcjonowania
    polega na wysyłaniu wiązki promieniowania
    IR i mierzeniu jej natężenia po odbiciu od
    podłoża. Kolor czarny pochłania znacznie
    więcej tego promieniowania od białego, przez
    co wartość odczytywana przez ADC jest niż-
    sza (niższe jest napięcie na fotodetektorze)
    gdy czujnik znajduje się nad linią


    Link


    więć wartość po kolorze czarnym powinna być niska, a nie taka jak nicość czyli 1023, co zrobić co zmienić :| programu nie dał :/

    0
  • #7 16 Lut 2013 16:33
    SeerKaza
    Poziom 20  

    Nie zrobisz tego programowo. Dla niego nicość = czarny kolor bo światło nie dociera do fototranzystora. Zobacz jednak że na zawodach . Linia jest biała a otoczenie jasne. Więc robot znajdzie linie. Po prostu ma szukać największej wartości na adc a nie najmniejszej

    0
  • #9 16 Lut 2013 17:09
    bogdan_p
    Poziom 39  

    kankuro666 napisał:
    CNY70 ma zakres widzenia czarnej linii do ok 1,5cm
    CNY70 są 5,5mm nad podłożem

    Ciekawe dane , proponuje zaglądnąć do dokumentacji CNY70 największą czułość czujnik ma przy 0,3mm dystansu od podłoża . Zastosuj się do uwag kolegi piotrva .

    0
  • #10 16 Lut 2013 17:09
    kankuro666
    Poziom 9  

    w takim wypadku to bylejaka nierówność sprawi, że nie będzie jechał. w datasheet pisze do 5mm...

    0
  • #12 16 Lut 2013 17:26
    kankuro666
    Poziom 9  

    widziałem, ale bez przesady z 0,5mm. w datasheet pisze, że do 5mm, nie kłamali by

    0
  • #13 16 Lut 2013 17:28
    SeerKaza
    Poziom 20  

    Spróbuj je jakoś obniżyć albo wymienić kółka na mniejsze jak w oryginalnym projekcie. Nikt nie mówi że maja być one na poziomie by czyłość była maksymalna mimo wszystko powinny być trochę niżej

    0
  • #14 16 Lut 2013 17:39
    bogdan_p
    Poziom 39  

    Proponuje zerknąć na wykresy w dokumentacji , szczególnie zależność dystans / prąd kolektora . W raz z zwiększaniem odległości prąd gwałtownie maleje co za tym idzie zmiany koloru podłoża dają coraz mniejsze zmiany prądu , oczywiści jest możliwa praca z większą odległością ale nie przy bezpośrednim pomiarze . Dużo lepszym rozwiązaniem jest zastosowanie komparatorów analogowych tym bardziej że wymagane są tylko dwa stany .

    0
  • #15 16 Lut 2013 17:41
    kankuro666
    Poziom 9  

    nie wiem jak zastosować komparator analogowy..

    Cytat:
    Operating range within > 20 % relative collector current: 0 mm to 5 mm

    0
  • #16 16 Lut 2013 18:05
    bogdan_p
    Poziom 39  

    Najprostszy przykład zastosowania komparatorów masz w tym projekcie http://www.kmitl.ac.th/~kswichit/LFrobot/LFrobot.htm , próg przełączenia ustalasz jednym potencjometrem diody led nie są konieczne ale przydają się do sygnalizacji stanu danego czujnika . Widzę że nadal nie rozumiesz co to jest zależność dystans / prąd jeżeli chodzi o ścisłość to nawet pomiar na dystansie 10mm jest możliwy tylko zobacz sobie jak małe wartości będą prądu a co za tym idzie zmiany napięcia na rezystorze kolektora .

    0