jedná se o senzor zrychlení MMA7340LT, který je pripojen k ATmega8, který snímá hodnoty ze semzoru pomocí svých A/D převodníků.
zapojení odpovídá návrhu v dadashettu.
parametry senzoru:
3D (XYZ) akcelerometr s analogovým výstupem
Přepínatelný rozsah: 1.5g / 6g (MMA7360L) 3g / 12g (MMA7340L) 4g / 16g (MMA7330L) Vysoká citlivost: 800 a 200 mV/g (MMA7360L) 440 a 110 mV/g (MMA7340L) 308 a 77 mV/g (MMA7330L)
Reakční doba: 0.5 ms
Max. frekvence otáčení okolem os (Rolloff frequency): 400 Hz
Křížová citlivost: 5 %
Nelinearita: 1 % z rozsahu Měření statické i dynamické zrychlení
Detekce zrychlení 0 g (Ochrana proti volnému pádu)
Výstupní napětí při zrychlení 0 g: 1.65 V (MMA7360 a MMA7340L) 1.4 V (MMA7330L)
Odolnost proti přetížení až 5 000 g
Vstupy - logické: nastavení rozsahu (g-Select) sleep mód self test
Výstupy: signálové analogové napěťové Xout, Yout, Zout logický signál - detekce zrychlení 0 g Test vlastní funkce (Self-test function) Provozní teplota: -20 °C až +85 °C
Napájecí napětí: 2.2 V ¨-.6V DC Spotřeba: 400 uA ve sleep módu jen 3 mikroA
Pouzdro: 14pinové LGA (Land Grid Array)
Rozměry: 3 x 5 x 1 mm
Zobrazují se příspěvky se štítkemATmega. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemATmega. Zobrazit všechny příspěvky
pondělí 9. listopadu 2009
neděle 25. října 2009
ATmega 8 ovládání RGB LED
V poslední době jsem začal zkoušet programovaní procesorů ATmega po prvních zkušenostech se jeví programovaní jednoduší. Pro progamování lze použít program BASCOM, který pracuje na bázi jazika Basic takže je vše poměrně rychlé a intuitivní. Návrhy na četné programotory lze nalézt na internetu tím nejednodušám je programátor na bázi paralerního portu.
první program je zde:
'********************************************************
'* ATmega 8 rizeni RGB led pomocí PWM *
'* *
'* Tomas Vlas *
'* ver. 2.0.0.0 *
'********************************************************
$regfile = "m8def.dat"
$crystal = 1000000
'nastavení OSC1 a OSC2 jako PWM
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Config Timer2 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 1
'nastaveni A/D převodniku pro nastavení barvy
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'config AD
'pin C5 pro vyber manualni a automatické změn barvy
Config Portc.5 = Input
'proměné pro prevod HSV do RGB
Dim R As Byte
Dim G As Byte
Dim B As Byte
Dim R1 As Single
Dim G1 As Single
Dim B1 As Single
Dim H1 As Single
Dim H2 As Single
Dim H3 As Single
Dim H As Single
Dim F As Single
Dim P As Single
Dim Q As Single
Dim T As Single
Dim V As Single
Dim S As Single
Dim Ad As Word
Dim H4 As Single
Dim H5 As Single
'smycka pro nastaveni barev RGB diody
Do
'manualni nastaveni barvy
Ad = Getadc(3)
H4 = Ad * 0.345158
H4 = Int(h4)
'automaticke nastaveni barvy
H5 = H5 + 1
If H5 = 360 Then
H5 = 0
End If
'rozhodnuti maual automatika
If Pinc.5 = 1 Then H = H4
If Pinc.5 = 0 Then H = H5
' V a S proměné pro saturaci a odstín
V = 1
S = 1
'převod na RGB
H1 = H / 60
H3 = Int(h1)
F = H / 60
H2 = F
P = 1 - S
P = V * P
Q = H2 * S
Q = 1 - Q
Q = V * Q
T = 1 - H2
T = T * S
T = 1 - T
T = V * T
Select Case H3
Case 0:
R1 = V
G1 = T
B1 = P
Case 1:
R1 = Q
G1 = V
B1 = P
Case 2:
R1 = P
G1 = V
B1 = T
Case 3:
R1 = P
G1 = Q
B1 = V
Case 4:
R1 = T
G1 = P
B1 = V
Case 5:
R1 = V
G1 = P
B1 = Q
Case 6:
R1 = V
G1 = P
B1 = Q
End Select
'nastaveni promenych pro koparatory
R1 = R1 * 255
R = Round(r1)
G1 = G1 * 255
G = Round(g1)
B1 = B1 * 255
B = Round(b1)
Compare1a = R
Compare1b = G
Ocr2 = B
Waitms 100
Loop
End
_______________________________________________
první program je zde:
'********************************************************
'* ATmega 8 rizeni RGB led pomocí PWM *
'* *
'* Tomas Vlas *
'* ver. 2.0.0.0 *
'********************************************************
$regfile = "m8def.dat"
$crystal = 1000000
'nastavení OSC1 a OSC2 jako PWM
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Config Timer2 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 1
'nastaveni A/D převodniku pro nastavení barvy
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'config AD
'pin C5 pro vyber manualni a automatické změn barvy
Config Portc.5 = Input
'proměné pro prevod HSV do RGB
Dim R As Byte
Dim G As Byte
Dim B As Byte
Dim R1 As Single
Dim G1 As Single
Dim B1 As Single
Dim H1 As Single
Dim H2 As Single
Dim H3 As Single
Dim H As Single
Dim F As Single
Dim P As Single
Dim Q As Single
Dim T As Single
Dim V As Single
Dim S As Single
Dim Ad As Word
Dim H4 As Single
Dim H5 As Single
'smycka pro nastaveni barev RGB diody
Do
'manualni nastaveni barvy
Ad = Getadc(3)
H4 = Ad * 0.345158
H4 = Int(h4)
'automaticke nastaveni barvy
H5 = H5 + 1
If H5 = 360 Then
H5 = 0
End If
'rozhodnuti maual automatika
If Pinc.5 = 1 Then H = H4
If Pinc.5 = 0 Then H = H5
' V a S proměné pro saturaci a odstín
V = 1
S = 1
'převod na RGB
H1 = H / 60
H3 = Int(h1)
F = H / 60
H2 = F
P = 1 - S
P = V * P
Q = H2 * S
Q = 1 - Q
Q = V * Q
T = 1 - H2
T = T * S
T = 1 - T
T = V * T
Select Case H3
Case 0:
R1 = V
G1 = T
B1 = P
Case 1:
R1 = Q
G1 = V
B1 = P
Case 2:
R1 = P
G1 = V
B1 = T
Case 3:
R1 = P
G1 = Q
B1 = V
Case 4:
R1 = T
G1 = P
B1 = V
Case 5:
R1 = V
G1 = P
B1 = Q
Case 6:
R1 = V
G1 = P
B1 = Q
End Select
'nastaveni promenych pro koparatory
R1 = R1 * 255
R = Round(r1)
G1 = G1 * 255
G = Round(g1)
B1 = B1 * 255
B = Round(b1)
Compare1a = R
Compare1b = G
Ocr2 = B
Waitms 100
Loop
End
_______________________________________________
Přihlásit se k odběru:
Příspěvky (Atom)
