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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.