Strona 1 z 1
Potencjometr cyforwy MCP4011 sterowanie
: 20 sie 2023, 12:42
autor: Michał6201
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?
Re: Potencjometr cyforwy MCP4011 sterowanie
: 20 sie 2023, 14:58
autor: niveasoft
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ć
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
Re: Potencjometr cyforwy MCP4011 sterowanie
: 23 sie 2023, 20:23
autor: Michał6201
Dziękuję Ci bardzo
Po powrocie do domu będę testował
Re: Potencjometr cyforwy MCP4011 sterowanie
: 09 mar 2024, 13:44
autor: Michał6201
Niestety nie działa ten program do sterowania potencjometrem MCP4011
$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
Re: Potencjometr cyforwy MCP4011 sterowanie
: 10 mar 2024, 9:07
autor: niveasoft
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:
$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