PIC Spannung in hex

Gast #707414
Lesenswert?

Hallo Leute!

Bin am verzweifeln! Ich muß in nem PIC 16F627A den Komparator 
programmieren... Ich habe 4 LEDs anzusteuern. Betriebsspannung 5 Volt. 
Die erste LED soll bei 1,6V, die zweite bei 2,5V , die dritte bei 3,0V 
und die letzte bei 3,4 Volt leuchten. Das Programm steht, nur weiß ich 
nicht wie ich die Spannungen in hex umrechnen kann..... Hat jemand  Zeit 
mir zu helfen?
Danke!
Joinie
Gast #707419
Lesenswert?

Ich behaupte einfachmal, dass das mit nem Komparator nicht geht. Der hat 
nur eine Schwelle.

Sowas sollte mit nem ADC (keine Ahnung ob dein PIC einen hat) gehen. 
Hilfe zur Umrechnung der Hexwerte in Volt oder was auch immer sollte 
dann im Datenblatt stehen
Gast #707427
Lesenswert?

Ist der ADC. Sorry.das Programm läuft. Aber mit den falschen Spannungen 
(in hex) im Programm. Hab beispielsweise 083h für 1,72 Volt. Die 
hex-Angaben muß ich ändern für die o.g. 
Spannungen....hmmm....verzeifel..... N klitzekleienr Tip?
Gast #707452
Lesenswert?

Nu denn: Ich nutze den PIC um Lichtstärken zu messen. Je nach 
Lichtstärke am LDR wird ne ensprechende LED angesteuert und leuchtet. 
Also, das ganze Ding funktioniert brauche nur andere Schaltschwellen an 
PIN17 (I/O...als analoger Eingang geschaltet) Im Programm sind diese 
Schaltschwellen hinterlegt...logisch... nu will ich diese 
Schaltschwellen ändern. Diese Schaltschwellen sind immer Bruchteile der 
Versorgungsspannung. Ich hab da also hex 083h für 1,72 Volt und zb 0a7h 
für 1,46 Volt. Ich muß nu die og Spannungen in hex ins Programm 
schreiben. NUR: Wie rechne ich die Spannungen in hex um?
#707463
Lesenswert?

Schau mal ins Datenbuch, Kapitel 11.1

Da stehen die Formeln:
bit 3-0 VR<3:0>: VREF Value Selection bits 0 ≤ VR <3:0> ≤ 15
When VRR = 1: VREF = (VR<3:0>/ 24) * VDD
When VRR = 0: VREF = 1/4 * VDD + (VR<3:0>/ 32) * VDD

VRR ist bit 5.

Also:
xx0x0011 ergibt 1.72 V
xx1x0111        1.46 V

(jeweils bei VDD=5V).

Alles klar?

(um es vorweg zu nehmen: folgende Spannungen können eingestellt werden:
VRR=0:
0.00
0.21
0.42
0.63
0.83
1.04
1.25
1.46
1.67
1.88
2.08
2.29
2.50
2.71
2.92
3.13

VRR=1:
1.25
1.41
1.56
1.72
1.88
2.03
2.19
2.34
2.50
2.66
2.81
2.97
3.13
3.28
3.44
3.59
)
Gast #707475
Lesenswert?

Ja!!! Jippiii! Wir kommen der Sache näher! Ich hab das Programm 
schreiben lassen. Komme aber momentan nicht an die Programmierquelle 
ran... :-(  Ich bin für sowas sorry: zu d..f Deswegen meine 
Verzweiflung! Kannst Du mir die hex Bezeichnungen daneben schreiben? Ist 
sicherlich friemelei... ich weiß.. Ich krieg das sonst echt nicht 
gebacken... bin in dieser Sache reiner Praktiker! Wäre Dir wirklich sehr 
dankbar!!!
#707500
Lesenswert?

Naja, heute ist mein guter Tag...

> Ist sicherlich friemelei...
Überhaupt nicht, kleine Fingerübung in Excel

> bin in dieser Sache reiner Praktiker
In welcher Sache bist Du denn Theoretiker?

Aber bitte: Lerne zu lesen und zu verstehen.

VRR=1:
0.00    0a0h
0.21    0a1h
0.42    0a2h
0.63    ..
0.83
1.04
1.25
1.46
1.67
1.88
2.08
2.29
2.50
2.71
2.92
3.13    0afh

VRR=0:
1.25    080h
1.41    081h
1.56    082h
1.72    ..
1.88
2.03
2.19
2.34
2.50
2.66
2.81
2.97
3.13
3.28
3.44
3.59    08fh

(hatte übrigens VRR 0 und 1 vertauscht)
Gast #707519
Lesenswert?

Ich hab das ganze Programm. Hat 150,00 Euro gekostet. Ist extra für mich 
geschrieben worden...

Theoretiker bin ich im PIC programmieren...hab mich mal dran versucht 
und bin dann aus lauter Verzweiflung an einen Bekannten gegangen.

Herzlichen Dank Severino! Hast mir echt von nem Nervenzusammenbruch 
gerettet...lol

Hier mal die kurze Erklärung die ich vor 2 Monaten bekommen habe. Bin 
dann erst heute wieder dazu gekommen, dran zu arbeiten..:

+++
+++
Die Spannungswerte sind immer Bruchteile der
Versorgungsspannung, also von 5V.
Es gibt zwei Bereiche; die "Zehnerziffer" im Hex gibt den Bereich
an.
Ziffer 8 -> 8/32..23/32
Ziffer a -> 0/24..15/24
Die "Einerzffer" wählt innerhalb des Bereichs.
Beispiel: 83 ->11/32 der Versorgungsspannung -> 1,72V
a7 -> 7/24 -> 1,46V

Schreibweise im Programm:
Groß- oder Kleinbuchstabe ist egal.
Eine Zahl muß immer mit 0..9 beginnen, bei einem Wert in Hex
muß ein h angehängt werden. Deshalb muß bei a7 im Programm
0a7h stehen. 000a7h ginge genauso. Bei 83 kann 83h stehen, oder
auch 083h oder 0000083h (oder 131, das ist der dezimale Wert).

Viele Grüße,
+++
+++

Da steig ich echt nicht durch.... ;-(... Nochmals herzlichen Dank!

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