Skocz do zawarto┼Ťci
Komentator

Kurs Arduino - #4 - Przetwornik ADC

Pomocna odpowied┼║

Bardzo dobry tutorial ­čśë Mam jednak par─Ö pyta┼ä, bo nie wszystkie przyk┼éady uda┼éo mi si─Ö wykona─ç:

Dlaczego przy fotorezystorze trzeba u┼╝ywa─ç rezystora 1k? Co si─Ö stanie je┼Ťli go nie u┼╝yj─Ö? Czy je┼Ťli nie mam pod r─Ök─ů rezystora 1k to musz─Ö jako┼Ť kombinowa─ç ┼é─ůczy─ç inne rezystory, czy mo┼╝e u┼╝ycie innego (1,2k) da podobny efekt?

Udost─Öpnij ten post


Link to post
Share on other sites

Synergia, vernun, wszystkie kody, kt├│re dzia┼éaj─ů na tym etapie s─ů dobre. Grunt to zabawa i nauka na przyk┼éadach. Czas na dopracowywanie program├│w jeszcze przyjdzie.

Piotrek2525, dokładnie - chodzi o dzielnik napięcia, tak jak napisał MateuszW.

Udost─Öpnij ten post


Link to post
Share on other sites

W jaki spos├│b zmniejsza─ç / zwi─Öksza─ç dok┼éadno┼Ť─ç wy┼Ťwietlania napi─Öcia po przecinku dla zmiennej float? Np. 1.5V, 1.56V, 1.567V.

Udost─Öpnij ten post


Link to post
Share on other sites
W jaki spos├│b zmniejsza─ç / zwi─Öksza─ç dok┼éadno┼Ť─ç wy┼Ťwietlania napi─Öcia po przecinku dla zmiennej float? Np. 1.5V, 1.56V, 1.567V.

Je┼Ťli chcesz zwi─Ökszy─ç dok┼éadno┼Ť─ç to lepiej u┼╝y─ç typu o podw├│jnej dok┼éadno┼Ťci (double). Dla zaokr─ůglenia mo┼╝na u┼╝y─ç funkcji z biblioteki : round, ceil, floor, w zale┼╝no┼Ťci o co Ci konkretnie chodzi. W razie w─ůtpliwo┼Ťci zawsze pomaga google

Udost─Öpnij ten post


Link to post
Share on other sites

bocian, dzi─Öki za sugesti─Ö, do nast─Öpnej cz─Ö┼Ťci dodam wi─Öcej informacji na ten temat ­čÖé

Udost─Öpnij ten post


Link to post
Share on other sites

O! w┼éa┼Ťnie, kiedy nast─Öpna cz─Ö┼Ť─ç? ­čÖé

Udost─Öpnij ten post


Link to post
Share on other sites

MateuszW, nied┼éugo ­čśë

Udost─Öpnij ten post


Link to post
Share on other sites

Witam, mam taki problem, u┼╝ywaj─ůc czujnika temperatury LM35, odczytuje jego wskazania i wy┼Ťwietlam na "Monitorze szeregowym", lecz dane ukazuj─ů mi si─Ö w 3 linijkach (jak na obrazku):

Chcia┼ébym aby wy┼Ťwietlana informacja by┼éa w jednej linijce (kwestia estetyki):

kod:

int czujnik;

int tempPin = 1; //wy analogowe A1

 

void setup() {

Serial.begin(9600); //ustawienie pred transmisji danych a<>pc

}

void loop() {

czujnik = analogRead(tempPin);

float mV = ( czujnik/1024.0)*5000;

float celcjusz = mV/10;

 

Serial.println("temperatura pokoju wynosi: ");

Serial.println(celcjusz);

Serial.println("st. C");

delay(10000);

}

mianowicie, gdy pr├│buj─Ö zrobi─ç tak jak przedstawiono to w kursie #3:

Serial.println("Witaj! " + odebraneDane + "!");

moja wersja:

Serial.println("temperatura pokoju wynosi: " + celcjusz + "st.C");

to wyrzuca mi b┼é─ůd, ┼╝e warto┼Ť─ç we FLOAT nie jest prawid┼éowa. Czy tylko STRING da si─Ö tak wypisa─ç? Jak temu zaradzi─ç?

Z g├│ry dzi─Ökuj─Ö za wszelkie wskaz├│wki i pomoc!

Udost─Öpnij ten post


Link to post
Share on other sites

tomekk93,

Sprawdź ten artykuł, powinno pomóc.

Generalnie mo┼╝esz wykona─ç rzutowanie (FloatToString()) albo co┼Ť takiego

Serial.print("temperatura pokoju wynosi: ");
Serial.print(celcjusz);
Serial.println(" st.C");

albo nawet:

String vKomunikat = "temperatura pokoju wynosi: "+celcjusz + " st.C";
Serial.println(vKomunikat);

znaczniki poprawione ­čÖé

Udost─Öpnij ten post


Link to post
Share on other sites

MateuszW dzi─Ökuj─Ö, do tego zagadnienia nie doszed┼éem, a widz─Ö pope┼éni┼éem spory b┼é─ůd przez to. Wszystko dzia┼éa tak jak chcia┼éem ­čÖé

dzia┼éa to jak powinno, po zabiegu wygl─ůdaj─ůcym w ten spos├│b:

Serial.print("temperatura pokoju wynosi: ");

Serial.print(celcjusz);

Serial.print(" st. C\n")

Pozdrawiam!

Udost─Öpnij ten post


Link to post
Share on other sites

tomekk93,

Nie ma sprawy ale pami─Ötaj w programowaniu istnieje wiele rozwi─ůza┼ä jednego problemu (jedne lepsze od innych), trzeba wybra─ç jakie Ci odpowiada ­čÖé

Pozdrawiam.

  • Lubi─Ö! 1

Udost─Öpnij ten post


Link to post
Share on other sites

tomekk93, MateuszW, pami─Ötajcie Panowie, aby programy umieszcza─ç w tagach ­čÖé

Udost─Öpnij ten post


Link to post
Share on other sites
int odczytanaWartosc = 0;//Odczytana warto┼Ť─ç z ADC
float napiecie = 0;//Warto┼Ť─ç przeliczona na napi─Öcie w V

void setup() {
 Serial.begin(9600);//Uruchomienie komunikacji przez USART
}

void loop() {
 odczytanaWartosc = analogRead(A5);//Odczytujemy warto┼Ť─ç napi─Öcia
 napiecie = odczytanaWartosc * (4.5/1023.0); //Przeliczenie warto┼Ťci na napi─Öcie
 Serial.println(napiecie);//Wysyłamy zmierzone napięcie
 delay(200);//Czekamy, aby wygodniej odczytywa─ç wyniki  
}

U┼╝y┼éem tego kodu na moim mikrokontrolerze by widzie─ç jakie jest obecnie napi─Öcie p┼éyn─ůce z czujnika odleg┼éo┼Ťci sharp.

Użyłem do niego 3 baterie AA 1,5V

Kod mi co┼Ť nie dzia┼éa prawid┼éowo. Wy┼Ťwietla mi si─Ö napi─Öcie 4,5 ale potem s┼éabnie powoli do 0 i znowu ro┼Ťnie mimo ┼╝e nie macham nawet r─Ök─ů nad nim. A gdy od┼é─ůczam czujnik to wyskakuje mi ┼╝e mam jakie┼Ť napi─Öcie pod tym pinem mimo ┼╝e nic nie jest pod┼é─ůczone.

Udost─Öpnij ten post


Link to post
Share on other sites

To ┼╝e pin niepod┼é─ůczony do niczego ma napi─Öcie to normalne, indukuj─ů si─Ö szumy, nic nie wp┼éywa na potencja┼é, voilla.

  • Lubi─Ö! 1

Udost─Öpnij ten post


Link to post
Share on other sites

B─ůd┼║ aktywny - zaloguj si─Ö lub utw├│rz konto!

Tylko zarejestrowani u┼╝ytkownicy mog─ů komentowa─ç zawarto┼Ť─ç tej strony

Utw├│rz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj si─Ö ┬╗

Zaloguj si─Ö

Posiadasz własne konto? Użyj go!

Zaloguj si─Ö ┬╗

×