Einlesen von Analogwerten in einen PICAXE-M2+

OP #5237861
Lesenswert?

Moin,
ich versuche verzweifelt in einen PICAXE-18M2+ Analogwerte einzulesen 
und entsprechend der Werte LEDs zu schalten.
Ich beherrsche C und C++, aber dieses BASIC entzieht sich meinem 
Verständnisses.
Ich habe ein Poti an +5V und 0V angeschlossen und mit einem 
Vorwiderstand von 330 Ohm an einen ADC-Eingang gelegt.
Das Proggi sieht so aus:

'Analog-Digital-Wandler
' (C) 09.12.2017 by H. Kellas

main:   readadc C.0,b1         ‘ read value on pin C.1 into variable b1
    if b1<2500 then light1     ‘ if b1 is less than 75 then light 1
    if b1<4000 then light2     ‘ if b1 is less than 175 then light 2

goto     light3         ‘ if b1 is greater than 175 then light 3

light1:   high B.4         ‘ switch on LED 1
      low  B.5         ‘ switch off LED 2
     low  B.6         ‘ switch off LED 3

goto     main           ‘ loop

light2:   low  B.4         ‘ switch off LED 1
    high B.5         ‘ switch on LED 2
    low  B.6         ‘ switch off LED 3

goto     main           ‘ loop

light3:   low B.4         ‘ switch off LED 1
    low B.5         ‘ switch off LED 2
    high B.6         ‘ switch on LED 3

goto     main           ‘ loop

Aber nichts rührt sich.

Ich LIEBE Basic!

Wie definiert man denn Channels bei einem PICAXE, was mache ich falsch, 
verdammt?
Ich weiß auch nicht, wie die Einganswerte (mV, V) definiert werden.

Danke für eure Hinweise!
Gast #5240358
Lesenswert?

PicAxe kenne ich auch nicht, aber das nächste Problem liegt hier:

"The value of an analogue input can be easily copied into a
variable by use of the ‘readadc’ command. The variable
value (0 to 255) can then be tested."

Seite 79 aus http://www.picaxe.com/docs/picaxe_manual1.pdf
von wo du kopiert hast bedeutet schließlich, dass
die Funktion ‘readadc’ nur Werte im Bereich 0 bis 255 (also 8-bit) 
liefert. Testen von Variable b1 gegen 2500 oder gar 4000 ist also 
sinnlos.
(Firma: ☣ ⍵ ☣) Persönliche Seite #5240543
Lesenswert?

Oh, das habe ich übersehen! ;-)
Bitte schaue dir mal Great Cow BASIC an.
http://gcbasic.sourceforge.net/Typesetter/index.php/Home

Das ist GPL'ed Open Source, unterstützt PIC und AVR, ist ein Compiler, 
unterstützt eine unfassbar große Menge an Peripherie.
Für Analog Verarbeitung ist hier ein guter Einstiegspunkt.
http://gcbasic.sourceforge.net/help/_analog_digital_conversion_overview.html
Besonders hervorzuheben ist die ausgezeichnete Dokumentation, gerade bei 
User Community getriebenen Projekten hapert es ja dort schon mal.
OP #5241300
Lesenswert?

Hallo,
danke für die Tipps.
'die Funktion ‘readadc’ nur Werte im Bereich 0 bis 255 (also 8-bit)
liefert. Testen von Variable b1 gegen 2500 oder gar 4000 ist also
sinnlos.'
Genau :-)! Habe die Befehle mal nachgelesen; mit readadc10 und einem 
Umschreiben des codes läuft alles.
Vielen Dank der Gemeinde!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren