Skocz do zawartości

Pomiar napięcia Atmega 16 C


skyguy

Pomocna odpowiedź

Koledzy męczę się z pomiarem na PA0 i PA1 napięcia.

W skrócie - napięcie odniesienia wewnętrzne, Vref przez kondensatr do GND.

Napięcie mierzone około 1,4V. A LCD cały czas pokazuje 5V.

Napięcie mierzone podłączyłem przez potencjometr z 5V bezpośrednio do PA0 i na drugą nóżkę PA1 to samo.

Jak odłączę napięcie mierzone i nóżka PA0 "wisi w powietrzu" to cały czas napięcie oscyluje od 3V do 5V. Pokazuje 0V jak podłączę do GND (to akurat się zgadza 😃)

Nie mam już sił na to, zobaczcie czy gdzieś nie popełniłem herezji:

#include <avr/io.h>
#include "hd44780.h"
#include <stdlib.h>
#include <util/delay.h> 


volatile float Voltage1[0];
volatile float Voltage2[1];

void inline ADCInit()
{
   ADMUX |= (1 << REFS0) | (1 << REFS1) ;    //Aref - wewnetrze zrodlo odniesienia 2,56 V
   ADCSRA |= (1 << ADEN) | (1 << ADIE) | (1 << ADPS0) | (1 << ADPS1) | (1 << ADPS2);        //uruchomienie przetwornika, CLK/128
}

void inline ADCSetChannel(uint8_t channel) //przypozadkowanie kanalu
{
   ADMUX = ((ADMUX&0xE0)+ channel);
}

void inline ADCMeasure()
{
   ADCSRA |= (1 << ADSC);                //zacznij pomiar
  while (ADCSRA & (1<<ADSC));         //czekaj na koniec pomiaru
}

int main(void)
{

   ADCInit();      //inicjalizacja ADC

  lcd_init();      //inicjalizacja LCD
  LCD_DISPLAY(LCDDISPLAY); 
  LCD_CLEAR;           
   LCD_LOCATE(5,0);
   lcd_puts("V");
   LCD_LOCATE(5,1);
   lcd_puts("V");

   while(1)
  {

     char buffer[8];   //zmienna do konwersji wyniku

     //kanal 1   
     _delay_ms(1000);    //opoznienie 1s

     ADCSetChannel(0);    //ustawienie kanału do pomiaru
       ADCMeasure();      //rozkaz wykonania pomiaru + czekaj az skonczy pomiar
     Voltage1[0] = ADC;   //przypisanie wyniku do zmiennej Voltage1

     LCD_LOCATE(0,0); 
     lcd_puts(dtostrf(Voltage1[0]/204.8,5,2,buffer)); //konwersja wyniku na LCD


     //kanal 2
     _delay_ms(1000); //opoznienie 1s

     ADCSetChannel(1);
       ADCMeasure();
     Voltage2[1] = ADC;


     LCD_LOCATE(0,1); 
     lcd_puts(dtostrf(Voltage2[1]/204.8,5,2,buffer));

   }

   return 0;
}
Link do komentarza
Share on other sites

Moim zdaniem błędnie podłączyłeś te rezystory (choć nie wiem czemu piszesz że to potencjometr).

W tej konfiguracji na PA0 mierzysz potencjał zasilania, czyli 5V, wiec wyświetlacz Cię nie okłamuje. Na schemacie mierzysz miernikiem spadek napięcia na rezystorze (wspomniane 1,4V), a to wcale nie jest napięcie na wejściu ADC.

Potrzebujesz dzielnika rezystancyjnego, np dwa rezystory połączone szeregowo, jeden do Vcc, drugi do GND, a połączenie między rezystorami do ADC. Dopiero wtedy uzyskasz spadek napięcia (prawo Ohma).

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Tak, rzeczywiście pierzchan miałeś rację. O tym nie pomyślałem.

Wrzuciłem rezystory miedzy czasie - kolejne uproszczenie schematu.

Chcę zrobić schemat wykorzystujący fotorezystor, im więcej pada na fotorezystor światła tym większe jest napięcie. Czy poniższy schemat w takim układzie jest dobry?

Link do komentarza
Share on other sites

Chcę zrobić schemat wykorzystujący fotorezystor, im więcej pada na fotorezystor światła tym większe jest napięcie. Czy poniższy schemat w takim układzie jest dobry?

Zamiast pytać, nie lepiej sprawdzić? Są tylko dwie konfiguracje, 1-fotorezystor do GND, 2-fotorezystor go Vcc.

Ja zawsze wole samemu sprawdzić proste rzeczy, nie ma to jak własne doświadczenie 🙂.

Link do komentarza
Share on other sites

Są tylko dwie konfiguracje, 1-fotorezystor do GND, 2-fotorezystor go Vcc

źle mu radzisz do Vcc podłączasz rezystor np. 10k a do GND dajesz fotorezystor, wtedy uzyskasz na wejściu ADC napięcie zależne od natężenia światła padającego na fototranzystor

  • Pomogłeś! 1
Link do komentarza
Share on other sites

1-fotorezystor do GND, 2-fotorezystor go Vcc -

to już przerobiłem z odpowiednimi tranzystorami nie potrzeba nawet Atmegi, a silnik będzie się kręcił w obie strony, ale zależy mi, aby każdy czujnik był czytany niezależnie a sterowanie będzie realizowane na bazie algorytmu

10k a do GND dajesz fotorezystor, wtedy uzyskasz na wejściu ADC napięcie zależne od natężenia światła padającego na fototranzystor

A nie powinno być odwrotnie? Fotorezystor do 5V i R10K do GND i wtedy im więcej pada na fotorezystor tym mniejszy opór i tym większe jest napięcie.

Czyli rozumiem układ taki jak narysowałem i R=10k?

Link do komentarza
Share on other sites

Ja zamiast fotoREZYSTORA polecam użyć fotoTRANZYSTOR. Będziesz miał większy zakres zmian napięcia. Fotorezystor zmienia rezystancję w jakimś określonym przedziale np. 5k-10k, czyli nigdy nie osiągniesz napięcia zasilania ani GND

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Polecasz jakiś konkretny fototranzystor?

Ja mam fotorezystor fr28

rezystancja przy 10lx to 12-36 kom, rezystancja RD (ciemna) 500kom, dodam jakiś potencjometr, aby wyregulować układ i heja. Napięcie w zależności od oświetlenia jest w przedziale od 1,5 do 4V z dwoma miejscami po przecinku - wydaje mi się że jest ok.

Link do komentarza
Share on other sites

źle mu radzisz do Vcc podłączasz rezystor np. 10k a do GND dajesz fotorezystor, wtedy uzyskasz na wejściu ADC napięcie zależne od natężenia światła padającego na fototranzystor

Oczywiście w obu przypadkach miałem na myśli wykorzystanie fotorezystora i rezystora jako dzielnik napięcia, przypadki miały się różnić tylko umiejscowieniem elementów (na przemian).

Napisałem tak, ponieważ autor zapytania chciał osiągnąć efekt " im więcej pada na fotorezystor światła tym większe jest napięcie", a mi się z lenistwa nie chciało sprawdzać czy rezystancja fototranzystora roście czy maleje wraz ze wzrostem poziomu jasności. Piszę "z lenistwa" bo mając do dyspozycji układ z uP jak autor może to sprawdzić w kilka sekund, zdobywając przy tym doświadczenie 🙂

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Fototranzystor w zasadzie dowolny. Udało Ci się w końcu poprawnie odczytać napięcie?

Tak udało mi się poprawnie odczytać napięcie, setna część się waha ale myślę, że po prostu tak już jest.

Fotorezystor czy fototranzystor - nie pozostaje mi nic innego jak przetestowanie tego i zobaczenie co mi daje bardziej zadowalający wynik. Efekty soon 😉

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.