digitális potméter

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

digitális potméter

Hozzászólás Szerző: szovhoz »

egy attinyvel szeretnék digitális potmétert hajtani!
MCP4011-103E/SN ezt néztem ki olcsó nagyon csak 140 ft jó lessz próbálkozni.

Néztem az adatlapját ennek a potinak 2 lábon vezérli.
az én meglátásom szerint a vezérlése egy lábon jelzi hogy jön az adat a másikon küldi azt utánna lezárja hogy vége!

valami ötlet kódrészlet hogyan oldanátok meg?

még dac is érdekelne. 0-10v szabályozást szerenék csinálni csak a proci ugye digi ez meg már analóg a poti olcsó megoldás. és csak 2 láb.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Mondjuk annyit segíthettél volna, hogy közlöd hol található az adatlap!
Ne nekünk keljen újra + keresgélni!
Hooligan01

Hozzászólás Szerző: Hooligan01 »

Adatlapja: http://ww1.microchip.com/downloads/en/D ... 21978c.pdf

Működése:
Adatlap 31. oldal, Figure 5-2 - increment
Adatlap 32. oldal, Figure 5-3 - decrement

Egyszerű mint a faék..
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

Hozzászólás Szerző: szovhoz »

azt értem hogy a cs -vel állítom hogy mikor megy az adat de ha folyamtsoan küldöm neki? akkor folymatosan le kell nyomjam 0-ra?
és a másik lábon hogy adjam ki a jelet magas és alacson gyors váltásával?
vagy

Kód: Egész kijelölése

$regfile = "M16def.dat"
$crystal = 16000000
$hwstack = 128                                              ' default use 32 for the hardware stack
$swstack = 40                                               'default use 10 for the SW stack
$framesize = 40                                             'default use 40 for the frame spa

Config Portb.5 = Output                                     'U/D
Config Portb.6 = Output                                     'CS
Cs Alias Portb.6
Ud Alias Portb.5
Dim A As Byte


Cs = 1

Do
Cs = 0
For A = 0 To 254
Portb.5 = A
Next A
Cs = 1
Loop
Hooligan01

Hozzászólás Szerző: Hooligan01 »

Látom nem megy az Angol....

Tehát :
A wiper(csúszka) maximum értéke 0x3F, tehát 0-63. Nem csordul túl egyik irányban sem.
Hehe, nincs közepe :D

Increment - növelni.
Decrement - csökkenteni.

Növelésnél a felfutó éleket számolja.
Csökkentésnél a lefutó éleket számolja.

Ennek fényében a kód:

Kód: Egész kijelölése


Novel:
  Set Ud       
  Reset Cs

  Reset Ud 
  Set Ud 

  Set Cs
Return

Csokkent:
  Reset Ud
  Reset Cs

  Set Ud
  Reset Ud

  Set Cs
Return
Igen, jól látod, amíg a CS alacsony, addig tolhatod neki az irányadatokat.
De mint írtam is, egyik irányba sem csordul túl.
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

Hozzászólás Szerző: szovhoz »

És hány impulzus a max és a min?
0x3F és 0x00 ?
Hooligan01

Hozzászólás Szerző: Hooligan01 »

Lassan írom, hogy megértsd.

A teljes tartomány 0x00(hex) és 0x3F(hex) között értendő, tehát 0-63(dec), azaz összesen 64 lépés.

Tehát 0-tól a maxig összesen 63 impulzus (ez a felbontása).

Összesen 64 pozíciója van a csúszkának.
Avatar
szovhoz
Bitfaragó
Hozzászólások: 608
Csatlakozott: 2007. április 7. szombat, 6:00

Hozzászólás Szerző: szovhoz »

Oké értem eddig is értetem, csak a biztonság kedvéért kérdeztem!

Amúgy a megvalósítása projectnek, hogy egy hőszenzort ADC beolvasok - mondjuk bejön 22 fok.
Egy potin beállítom, hogy 20 fok (analóg potin)!

És a digitális potin kell kiadjam a jelet a ventillátornak, hogy addig hűtsön max. gázzal amíg nincs a kettő közti hőmérséklet. Utána szépen lassan vegye vissza az impulzus csomagok méretét 0-ig - amikor 0 impulzust adok a digitális potinak akkor 20 fok kell legyen már a hőmérőn!

Remélem érthető?

Kijívítottam a baragadt billentyűket. Valamint - talán a hibás , billentyűk miatt hiányzó - vesszőket is beírtam. Plusz a Shifttel a mondatkezdő nagybetűk is javításra kerültek.... Szerk. Admin
Avatar
Allspark
Bitmanipulátor
Hozzászólások: 106
Csatlakozott: 2009. július 9. csütörtök, 6:00

Hozzászólás Szerző: Allspark »

Hello

Lehet nem ide tartozik de emiatt nem akarok új témát indítani.
Egy ellenállásosztót szeretnék vezérelni ami egy műveleti erősítőhöz megy és azt erősíti föl 12 v-ra.

Ehhez ugye kapcsolgatni kell a lábak ki és bemenetét. A fórumon még régebben olvastam hogy hogyan is lehetséges ez de most sehol se találom és fejből készítettem el a progit de sajnos nem stimmel valami.

Kód: Egész kijelölése

Sub Fesz                                                    ' Feszültség beállítása
   Select Case Feszval
      Case 21 :                                             ' 2.2v beállítása
         Config Pinb.0 = Input                              ' 2k ell bemenet
         Config Portb.1 = Output                            ' 700 kimenet
         Config Portb.2 = Output                            ' 330 kimenet
         Reset Portb.1                                      ' 700ohm osztó bekapcs
         Reset Portb.2                                      ' 330 osztó bekapcs , eggyüttes eredő: 224ohm
      Case 22 :                                             ' 2.6v beállítása
         Config Portb.0 = Output
         Config Pinb.1 = Input
         Config Portb.2 = Output
         Reset Portb.0
         Reset Portb.2
      Case 23 :                                             ' 2.9v beállítása
         Config Pinb.0 = Input
         Config Pinb.1 = Input
         Config Portb.2 = Output
         Reset Portb.2
      Case 24 :                                             ' 4.2v beállítása
         Config Portb.0 = Output
         Config Portb.1 = Output
         Config Pinb.2 = Input
         Reset Portb.0
         Reset Portb.1
      Case 25 :                                             ' 5.1v beállítása
         Config Pinb.0 = Input
         Config Portb.1 = Output
         Config Pinb.2 = Input
         Reset Portb.1
      Case 26 :                                             ' 8v beállítása
         Config Pinb.0 = Input
         Config Portb.1 = Output
         Config Portb.2 = Output
         Reset Portb.0
      Case 27 :                                             ' 12v beállítása
         Config Pinb.0 = Input
         Config Pinb.1 = Input
         Config Pinb.2 = Input
   End Select
End Sub
Kép a kapcsolásról:
Kép

Esetleg ha segít fel tudom tölteni hogy mit mutat a Scope, de szerintem a progival van a baj. Vagy az is lehet hogy rosszul számolok valamit.

Köszönöm a segítséget és nézzétek el ha valami nagy baromságot írtam.
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Hozzászólás Szerző: winnerbt »

Szia!
Én úgy csinálnám, hogy a használt portbitek=0, és a DDRB regiszter bitjeit billegtetném, mivel logikai 1 szintre nincs a példában szükség az osztókimeneteken. Tehát vagy leszakad (DDRB.n=0) vagy kimenet, de akkor meg 0 szint kell csak.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A láb ne bemenet legyen. Az nem csinal semmit akkor, hanem az ellenllas lebeg....

Mindegyik lab kimenet és set/reset állapota legyen.Ha jól értem....
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Hozzászólás Szerző: winnerbt »

Nem-nem! Vagy leszakad (bemenet) vagy GND legyen.
Persze lehet kimenet +5V is, de akkor furi kimeneti feszértékek
jelennek meg az osztó kimenetén, pl. a PWM jel 2.5-5V tartományba felhúzódik.
(persze, ha kell ilyen is...akkor jól jön)
Tehát az osztók talpontja úgy működik, mint egy mechanikus GND-re kötött kapcsoló. Ahogy nézem Protheus-t használ a kollega, ott fullra leszimulálhatja a programját és virtuális szkópon nézegetheti a jelalakot.
JAni
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A rajzon így nincs ellenállásosztó!
Nincs elrajzolva?
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Hozzászólás Szerző: winnerbt »

Ha jól emléxem, egy PWM kijáratot kell osztani, a többi portláb végül is alsóóldali kapcsolónak van használva, ami GND-t kapcsol. Tehát nem D/A konvertert csinál.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Szerintem az elején be kellene kapcsolni PB.3-ast:

Kód: Egész kijelölése

Sub Fesz                                                    ' Feszültség beállítása 
  Config Portb.3 = Output 
  Set Portb.3			’Default +12V bekapcs!
  Select Case Feszval 
      Case 21 : ……….
A többi kimenetet, pedig igény szerint 0V-re kapcsolva jön létre a feszosztás.
A müv.erősítő bemenete soha nem lebeghet, mert begerjed! (Erre vigyáz a programozásnál!)
Válasz küldése