Forum: Mikrocontroller und Digitale Elektronik Analogwert Auswerten Bascom


von Matthias (Gast)


Lesenswert?

Hallo hab ein kleines Problem

hab an einem Atmega 8535 ein Poti. Nun will ich eine Led ansteuern wenn 
das Poti eine bestimmte Stellung hat. Das geht auch. Jetzt sollte aber 
das Poti nicht nur bei einem Wert von z.B 256 leuchten, sonder wenn der 
Wert zwischen 240 und 260 liegt.

Leider weis ich jetzt nicht wie ich das in Bascom am besten 
Programmieren soll.

Danke für Eure Hilfe

Gruß Matthias

von Falk B. (falk)


Lesenswert?

if (adc_wert>240 and adc_wert<260) then

von Wolf M. (atmega8535)


Lesenswert?

Danke für die Antwort, aber leider geht das bei mir nicht.

Wenn der Wert X größer als 240 ist oder kleiner als 260 dann soll eine 
Led leuchten.


So sieht mein Programm aus

Do

Config Adc = Single , Prescaler = Auto , Reference = Internal

Start Adc

Config Portc = Output
Portc = 255



Dim W As Integer , Channel As Byte


'Analogwert einlesen

W = Getadc(1)
  Print "Channel 0 " ; " value " ; W
  'Incr Channel



'Analogwert 1


   If(w > 240 Or W < 260) Then
  Portc.0 = 0

End If





Loop

von Falk B. (falk)


Lesenswert?

@ Wolf Matthias (atmega8535)

>Danke für die Antwort, aber leider geht das bei mir nicht.

Tjaaaa, das soll vorkommen.

>Wenn der Wert X größer als 240 ist oder kleiner als 260 dann soll eine
>Led leuchten.

Das sagtest du bereits.
Besser vielleicht so.
1
' EINMALIGE Konfiguration!
2
3
Config Adc = Single , Prescaler = Auto , Reference = Internal
4
5
Start Adc
6
7
Config Portc = Output
8
Portc = 255
9
10
Dim W As Integer , Channel As Byte
11
12
' HIER geht die Endlosschleife los
13
Do
14
15
'Analogwert einlesen
16
17
W = Getadc(1)
18
  Print "Channel 0 " ; " value " ; W
19
  'Incr Channel
20
21
'Analogwert 1
22
   If(w > 240 Or W < 260) Then
23
     Portc.0 = 0
24
   else 
25
     Portc.0 = 1
26
   End If
27
Loop

MfG
Falk

von Wolf M. (atmega8535)


Lesenswert?

Danke für deine Antwort. Hab deinen Code Kopiert und bei mir eingefügt.
Leider bringt Bascom bei der If Anweisung eine Fehlermeldung.

Unkow statement [IF(W> 240 OR W < 260)then]

von Holger K. (krulli) Benutzerseite


Lesenswert?

Versuch es mal ohne Klammern
If W > 240 Or W < 260 Then

von Jürgen C (Gast)


Lesenswert?

Hallo,
die Bedingung gröser 240 oder kleiner 260 ist immer wahr.
Ich glaube du meinst größer 240 und kleiner 260; diese Bedingung ist
nur im Bereich von 240 bis 260 wahr.

If W > 240 and W < 260 then

Ich habs jetzt noch nicht probiert, aber es sollte so gehen.

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
Noch kein Account? Hier anmelden.