PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino MiniPro -> Bascom, analoge Abfrage



Andree-HB
16.03.2015, 07:36
Hi Kollegen,
ich programmiere derzeit kleinere Arduinos (MiniPro und Nano) mit Bascom (über das Programm XLOADER), was soweit auch klappt...nur kann ich warum auch immer keine Analogwerte einlesen. Es sind jeweils 328P`s drauf, der ADC wird gestartet, per getadc abgefragt....aber ich bekomme als Wert immer 1023 raus, egal was ich einspeise. (Pins digital, I2C, usw. ist Alles kein Problem)

...hat da schon mal Jemand ähnlich Erfahrung gemacht, habe ich vielleicht irgendwo einen Denkfehler gemacht, oder Arduino`s noch eine Eigenart ?
(Bootloader sind jeweils noch drauf)


Gruß
Andree

HeXPloreR
16.03.2015, 09:47
Hallo Andree,

ist ja witzig ich hatte gestern genau das gleiche Problem. Wollte 5V über eine Widerstand (ca 2,5V) einlesen und wunderte mich über die 1023 - ich hatte so 512 erwartet.

Die Lösung war ich hatte keinen Spannungsteiler aufgebaut.
Natürlich muss der ADC auch über Config aktiviert werden.

Viele Grüße
Jörg

Andree-HB
16.03.2015, 10:34
Moin Jörg,
ich hatte ein Poti als Spannungsteiler dran...kann auch am Eingang die regelbare Spannung mit einem Meßgerät messen, aber irgendetwas funktioniert nicht.

Habe die einfach Funktion aus der Hilfe zum getadc genommen, auf `nem "normalen" Mega8 funktioniert auch Alles.
Ich vermute irgendetwas wegen Fuses oder Bootloader...hmm...


Gruß
Andree

HeXPloreR
16.03.2015, 12:59
Das Programm wäre hilfreich?!

Welchen Pin benutzt du? Es gehen ja standartmässig nur PORTC.0-.3 (.4-.5 nicht wenn man I²C mitbenutzt). Andere weiß ich jetzt nicht sicher.

Andree-HB
16.03.2015, 16:36
$regfile = "m328pdef.dat"
$crystal = 16000000
$baud = 9600 'RS232 Baudrate definieren

$hwstack = 250
$swstack = 250
$framesize = 450

config PORTb.5 = output '(die kleine onboard-LED/D12)
portb.5=0

Config Adc = Single , Prescaler = Auto
Start Adc

Dim W As Word

Do
W = Getadc(0)
print w
toggle portb.5
wait 1
Loop
End



- - - Aktualisiert - - -

klassischer Anfängerfehler von mir - ich habe vergessen anzugeben, welche Referenz er für den ADC nehmen soll,
die Erweiterung auf REFERENCE = AVCC brachte den gewünschten Erfolg. :-)

HeXPloreR
16.03.2015, 18:33
Sehr gut. Habe grade in ein Programm geschaut - wäre nun auch mein Tipp gewesen die Reference anzugeben, denn sonst sieht der Code richtig aus ;)

Viele Grüße
Jörg