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.

Część analogowa uC, pomiar napięcia.

miccaldo 08 Gru 2012 15:09 903 5
  • #1 08 Gru 2012 15:09
    miccaldo
    Poziom 12  

    Witam, mam pewne pytanie, otóż mam transoptor i chciałbym żeby np. przy napięciu 1,5V dioda zaczęła świecić, zasada podobna jak w Linefollowerach. Muszę chyba w tym celu skonfigurować część analogową uC? Czy mogę po prostu podłączyć transoptor do wejścia Analog i będzie działać? Szukałem o tym na internecie i znalazłem tylko o przetworniku A/C, ale w jaki sposób to programowo zrobić?

    0 5
  • #2 08 Gru 2012 15:28
    mi14chal
    Poziom 28  

    Możesz użyć ADC i wtedy odczytujesz wartość napięcia, albo użyć komparatora, który porównuje napięcia.

    0
  • #3 10 Gru 2012 18:34
    miccaldo
    Poziom 12  

    Ok, napisałem na szybko taki program:

    Code:

    #define F_CPU 1000000L
    #include <avr/io.h>
    #include <util/delay.h>

    #define LED_ON PORTB |=(1<<PB7)
    #define LED_OFF PORTB &= ~(1<<PB7)
    #define czujnik PORTC |= (1<<PC0)

    #define _BV(bit) (1 << (bit))

    void init()
    {

    DDRB |= LED_ON;
    PORTB |= LED_ON;

    DDRC |= _BV(0);
    PORTC &= ~_BV(0);

    }

    int main(void)
    {

    uint8_t napiecie;
    napiecie = 1;


    while(1);
    {

       if(czujnik >= napiecie)
       {

          LED_ON;

       }

       else
       {

          LED_OFF;

       }
    }
    }


    Co należało by zmienić aby działał?

    Dodano po 26 [minuty]:

    W tym programie zależnie jak mocno dotknę anody diody, świeci się słabiej lub mocniej, ale nigdy nie jest w pełni otwarta, co zmienić aby dioda świeciła zależnie od napięcia na tranzystorze?

    Proszę umieszczać kod w znacznikach syntax. Opcja Listing kodu. Proszę to poprawić. [adamas_nt]

    0
  • #4 10 Gru 2012 19:28
    mi14chal
    Poziom 28  

    Napisałeś: DDRB |= LED_ON; a LED_ON to: PORTB |=(1<<PB7) , więc jakim cudem to ma działać?
    Jak już to: DDRB |= (1<<7) ;

    0
  • #5 12 Gru 2012 00:03
    dondu
    Moderator Mikrokontrolery Projektowanie

    miccaldo napisał:
    W tym programie zależnie jak mocno dotknę anody diody, świeci się słabiej lub mocniej, ale nigdy nie jest w pełni otwarta, co zmienić aby dioda świeciła zależnie od napięcia na tranzystorze?

    Pokaż swój schemat.

    0
  • #6 12 Gru 2012 07:52
    tmf
    Moderator Mikrokontrolery Projektowanie

    miccaldo napisał:
    Witam, mam pewne pytanie, otóż mam transoptor i chciałbym żeby np. przy napięciu 1,5V dioda zaczęła świecić, zasada podobna jak w Linefollowerach. Muszę chyba w tym celu skonfigurować część analogową uC? Czy mogę po prostu podłączyć transoptor do wejścia Analog i będzie działać? Szukałem o tym na internecie i znalazłem tylko o przetworniku A/C, ale w jaki sposób to programowo zrobić?


    Jeśli interesuje cię tylko on/off to podłącz transoptor do zwykłego pinu IO, potraktuj transoptor tak jak przycisk, tyle, że aktywowany światłem.

    0