Cześć
Mam potencjometr MCP4011 i jest on sterowany dwoma pinami z mikrokontrolera na zasadzie Up i Down. Ale nigdzie nie znalazłem w internecie fragmentu kodu odpowiedzialnego za wysterowanie tego potencjometru.
Robił ktoś może z Was obsługę tego potencjometru w Bascom?
Chciałbym wykorzystać taki potencjometr do regulacji jasności podświetlenia lcd.
Z tego co przeczytałem w datascheet tego scalaka, to trzeba wysyłać do niego impulsy i chyba one muszą być oparte na timerach, coś ala PWM?
W internecie znalazłem obsługę w Bascom DS1267, ale to sporej wielkości kostka i nie za bardzo mi pasuje. Czy podobnie można wysterować ten MCP4011?
Potencjometr cyforwy MCP4011 sterowanie
- Michał6201
- Posty: 127
- Rejestracja: 03 paź 2015, 20:07
- niveasoft
- Posty: 1239
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Potencjometr cyforwy MCP4011 sterowanie
Tam to jest proste jak swiński ogon. Wysyła się impulsy a że maksymalnie jest ich 64 to długo nie potrwa i chyba to mozna zrobić na zwykłych opóźnieniach.
To czy zmniejsza lub zwiększa rezystancję zalezy od tego jaki stan ma pin UD przed ustawieniem pinu CS w stan niski.
Piszesz sobie dwa suby i gotowe.
Czytałem tę notę trzy minuty, ale chyba powinno działać
To czy zmniejsza lub zwiększa rezystancję zalezy od tego jaki stan ma pin UD przed ustawieniem pinu CS w stan niski.
Piszesz sobie dwa suby i gotowe.
Czytałem tę notę trzy minuty, ale chyba powinno działać
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- CS Alias PORTB.0 : Config CS = Output : Set CS
- UD Alias PORTB.1 : Config UD = Output
- Sub Zwieksz(byval Ile_krokow As Byte)
- Set UD
- Waitus 50
- Reset CS
- For N = 1 to Ile_krokow
- Waitus 50
- Toggle UD
- Waitus 50
- Toggle UD
- Next
- Waitus 50
- Set CS
- End Sub
- Sub Zmniejsz(byval Ile_krokow As Byte)
- ReSet UD
- Waitus 50
- Reset CS
- For N = 1 to Ile_krokow
- Waitus 50
- Toggle UD
- Waitus 50
- Toggle UD
- Next
- Waitus 50
- Set CS
- End Sub
- Michał6201
- Posty: 127
- Rejestracja: 03 paź 2015, 20:07
Re: Potencjometr cyforwy MCP4011 sterowanie
Dziękuję Ci bardzo
Po powrocie do domu będę testował
Po powrocie do domu będę testował
- Michał6201
- Posty: 127
- Rejestracja: 03 paź 2015, 20:07
Re: Potencjometr cyforwy MCP4011 sterowanie
Niestety nie działa ten program do sterowania potencjometrem MCP4011
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "m1284pdef.dat"
- $crystal = 8000000
- $hwstack = 128
- $swstack = 128
- $framesize = 128
- Declare Sub Zwieksz()
- Declare Sub Zmniejsz()
- Dim Ile_krokow As Byte
- Dim N As Byte
- CS Alias PORTB.0 : Config CS = Output : Set CS
- UD Alias PORTB.1 : Config UD = Output
- Config POrTA.1 = Input : PORTA.1 = 1 : plus Alias PINA.1 ' switch PLUS
- Config POrTA.0 = Input : PORTA.0 = 1 : minus Alias PINA.0 ' switch MINUS
- Do
- If plus = 0 Then Zwieksz
- If minus = 0 Then Zmniejsz
- Loop
- End
- Sub Zwieksz(byval Ile_krokow As Byte)
- Set UD
- Waitus 50
- Reset CS
- For N = 1 to Ile_krokow
- Waitus 50
- Toggle UD
- Waitus 50
- Toggle UD
- Next
- Waitus 50
- Set CS
- End Sub
- Sub Zmniejsz(byval Ile_krokow As Byte)
- ReSet UD
- Waitus 50
- Reset CS
- For N = 1 to Ile_krokow
- Waitus 50
- Toggle UD
- Waitus 50
- Toggle UD
- Next
- Waitus 50
- Set CS
- End Sub
- niveasoft
- Posty: 1239
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Potencjometr cyforwy MCP4011 sterowanie
Te suby były napisane tak że trzeba podac ile kroków ma się zmienić.
Jak nie podasz ilosci krokow to pewnie jest to zero i nic sie nie zmieni.
Mozna przepisac suby żeby były po jednym kroku ale te poprzednie powinny byc uzyte conajmniej tak:
Jak nie podasz ilosci krokow to pewnie jest to zero i nic sie nie zmieni.
Mozna przepisac suby żeby były po jednym kroku ale te poprzednie powinny byc uzyte conajmniej tak:
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "m1284pdef.dat"
- $crystal = 8000000
- $hwstack = 128
- $swstack = 128
- $framesize = 128
- Config Submode = New
- Sub Zwieksz(byval Ile_krokow As Byte)
- Set UD
- Waitus 50
- Reset CS
- For N = 1 To Ile_krokow
- Waitus 50
- Toggle UD
- Waitus 50
- Toggle UD
- Next
- Waitus 50
- Set CS
- End Sub
- Sub Zmniejsz(byval Ile_krokow As Byte)
- ReSet UD
- Waitus 50
- Reset CS
- For N = 1 to Ile_krokow
- Waitus 50
- Toggle UD
- Waitus 50
- Toggle UD
- Next
- Waitus 50
- Set CS
- End Sub
- Dim Ile_krokow As Byte
- Dim N As Byte
- CS Alias PORTB.0 : Config CS = Output : Set CS
- UD Alias PORTB.1 : Config UD = Output
- Config POrTA.1 = Input : PORTA.1 = 1 : plus Alias PINA.1 ' switch PLUS
- Config POrTA.0 = Input : PORTA.0 = 1 : minus Alias PINA.0 ' switch MINUS
- Do
- If Plus = 0 Then Call Zwieksz(2)
- If Minus = 0 Then Call Zmniejsz(2)
- Loop
- End