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!
:
Bearbeitet durch User
PicAxe kenne ich nicht, aber das Problem scheint ja eher hier zu liegen Holger K. schrieb: > 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 Da widersprichst du dich, C.0 oder C.1 ?
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.
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.
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!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.