Hallo, ich habe ein Programm für einen ATmega32 geschrieben. Da wird eine Spannung mit dem ADC gemessen. Die eigentlich Messung funktioniert auch, ich erhalte den ADC-Wert ohne Probleme. Doch dieser Wert ist nun in einem int. Nun möchte ich daraus die Spannung berechnen. Wie das eigentlich funktioniert ist mir auch klar, mit dem Taschenrechner funktioniert auch alles, nur im µC nicht. Meine Referenzspannung beträgt 5V. Ich setzte einen Spannungsteiler ein, 1k nach Masse, 10k nach Plus, in der Mitte ist der ADC-Pin. somit erhalte ich bei 12V einen Wert von ca. 223. Ich habe bereits versucht, nun mit dem Mikrocontroller die Spannung zu errechnen und über den UART auszugeben, doch leider bisher ohne Erfolg. Hier Mein Versuch:
1 | int wert; |
2 | double ua; |
3 | double volt; |
4 | char a[100]; |
5 | |
6 | uart_init(); //UART-initialisierung |
7 | |
8 | wert=lesen(0); //Nun liegt in "wert" 223.... |
9 | ua=(wert/1023)*5; |
10 | volt=(ua/1000)*(10000+1000); |
11 | |
12 | sprintf(a, "%f", volt); |
in "a" liegt jetzt leider nun "?" was mache ich falsch??? Mein UART funktioniert soweit ganz gut...... Ich glaube, mein größstes Problem ist die Umrechnung von double nach char a[100] wo liegt der Fehler? mfg utezr