BBMagic PWM to moduł zdalnego regulatora z komunikacją Bluetooth Low Energy (BLE), Bluetooth Smart.
Funkcje BBMagic PWM
- Trzy kanały PWM z korekcją gamma ; idealne do sterowania LEDami
- Możliwość wyłączenia korekcji gamma (pinem 14 (GAMMA CORR)) ; idealne do sterowania silnikami DC
- Faza sygnału PWM konfigurowana pinem 6 (INV_CONF). Dzięki tej funkcji BBMagic PWM może sterować tranzystorem PNP jak również NPN
- Funkcja automatycznego włączenia odbiornika po uruchomieniu modułu ; konfigurowana pinem 17
- Monitorowanie stanu napięcia zasilania
- Detektor światła ; pady do wlutowania fotorezystora 10k ; zakres wartości 0 do 255
- Wejście przetwornika ADC o zakresie napięć od 0 do 1,8V i rozdzielczości 1mV
- Pomiar temperatury chipu, który po skalibrowaniu może być interpretowany jako temperatura otoczenia
- Sygnalizacja komunikacji radiowej diodą LED ; konfigurowana pinem 2
- Komunikacja: szyfrowane i podpisane cyfrowo wiadomości Bluetooth Smart
- Proste sterowanie z Raspberry Pi 3 lub zero W przy użyciu biblioteki bbmagic_lib od wersji 2.0
Wyprowadzenia
Numer pinu | Opis |
---|---|
1,8,20,22,23,24 | Masa |
2 | Konfiguracja sygnalizacji transmisji radiowej:
|
3-5 | Wyjścia PWM |
6 | Wejście konfiguracyjne INV_CONF:
|
7,21 | Napięcie zasilania 1,8V – 3,6V |
7,8,9 | Pady dla wlutowania stabilizatora w przypadku chęci zasilania z wyższego napięcia. Ten sposób zasilania jest identyczny jak dla BBMagic METEO opisany tutaj: Jak zasilić BBMagic METEO moduł z Bluetooth Low Energy |
10 | Wejście napięcia zasilania dla stabilizatora z zabezpieczeniem przed odwrotną polaryzacją. Ten sposób zasilania jest identyczny jak dla BBMagic METEO opisany tutaj: Jak zasilić BBMagic METEO moduł z Bluetooth Low Energy |
11,12 | Pady dla wlutowania fotorezystora 10k |
13 | Wejście przetwornika analogowo-cyfrowego ADC_1. Zakres dopuszczalnych napięć od 0V do 1.8V. Rozdzielczość 1mV |
14 | Wejście konfiguracyjne GAMMA CORR
|
15,16 | Pady do podłączenia alternatywnej diody LED wraz z szeregowym rezystorem. Pad 15 – anoda LED z rezystorem. Pad 16 – katoda LED |
17 | Wejście konfiguracyjne START CONF
|
18,19 | Linie UARTa odpowiednio nadawanie i odbiór. Zakres dopuszczalnych napięć od 0V do 5V |
Tryby pracy
Tryb pracy BBMagic PWM | Stan pinu 6 (INV_CONF) | Stan pinu 14 (GAMMA CORR) | |
---|---|---|---|
1 | tryb PWM z korekcją gamma | niepodłączony | niepodłączony |
2 | tryb PWM bez korekcji gamma | niepodłączony | do GND (20,22,23,24) |
3 | tryb PWM_INVERT z korekcją gamma | do GND (20,22,23,24) | niepodłączony |
4 | tryb PWM_INVERT bez korekcji gamma | do GND (20,22,23,24) | do GND (20,22,23,24) |
Jak działa BBMagic PWM
Po włączeniu zasilania co 60 sekund BBMagic PWM wysyła informację 'ALIVE’.
Jeśli odbierze wiadomość z żądaniem zmiany nastaw to po dokonaniu regulacji niezwłocznie nada wiadomość 'ALIVE’ potwierdzając tym wykonanie zadania.
Jakie dane zawiera wiadomość 'ALIVE’?
Zawartość bufora zdefiniowano w pliku bbmagic_lib.h biblioteki w wersji 2.0
bbm_buf[BBMAGIC_DEVICE_TYPE] | typ modułu, który nadesłał dane ; w tym przypadku będzie to BBMAGIC_M_PWM |
bbm_buf[BBM_PWM_V_SUP] | aktualne napięcie zasilania modułu ; należy podzielic przez 71 (BBMAGIC_VCC_DIVIDER) aby otrzymać napięcie w woltach. |
bbm_buf[BBMAGIC_PWM_ADV_TIME] | czas po jakim wysłana zostanie kolejna wiadomość 'ALIVE’. Należy pomnożyć przez dwa aby otrzymać czas w sekundach. |
bbm_buf[BBM_PWM_CHIP_TEMP] | temperatura chipu w stopniach Celsjusza (kodowanie U2). Po skalibrowaniu wartość ta może być interpretowana jako temperatura otoczenia. |
bbm_buf[BBM_PWM_LIGHT] | poziom oświetlenia ; zakres 0-255 |
bbm_buf[BBM_PWM_CH0] | aktualna wartość wypełnienia PWM na wyjściu CHANNEL_0 ; zakres 0-100 |
bbm_buf[BBM_PWM_CH1] | aktualna wartość wypełnienia PWM na wyjściu CHANNEL_1 ; zakres 0-100 |
bbm_buf[BBM_PWM_CH2] | aktualna wartość wypełnienia PWM na wyjściu CHANNEL_2 ; zakres 0-100 |
bbm_buf[BBM_PWM_ADC_1_MSB] i bbm_buf[BBM_PWM_ADC_1_LSB] | poziom napięcia na wejściu ADC_1 w mV ; starszy i młodszy bajt |
bbm_buf[BBM_PWM_WORKTIME_0] | czas pracy modułu od ostatniego włączenia zasilania w sekundach – najmłodszy bajt 0 |
bbm_buf[BBM_PWM_WORKTIME_1] | czas pracy modułu od ostatniego włączenia zasilania w sekundach – kolejny bajt 1 |
bbm_buf[BBM_PWM_WORKTIME_2] | czas pracy modułu od ostatniego włączenia zasilania w sekundach – kolejny bajt 2 |
bbm_buf[BBM_PWM_WORKTIME_3] | czas pracy modułu od ostatniego włączenia zasilania w sekundach – najstarszy bajt 3 |
bbm_buf[BBM_PWM_FIRM_0] | numer wersji firmwareu modułu, młodszy bajt |
bbm_buf[BBM_PWM_FIRM_1] | numer wersji firmwareu modułu, starszy bajt |
bbm_buf[BBMAGIC_DEVICE_ADDR_0] | adres modułu najmłodszy bajt 0 – LSB |
bbm_buf[BBMAGIC_DEVICE_ADDR_1] | adres modułu bajt 1 |
bbm_buf[BBMAGIC_DEVICE_ADDR_2] | adres modułu bajt 2 |
bbm_buf[BBMAGIC_DEVICE_ADDR_3] | adres modułu bajt 3 |
bbm_buf[BBMAGIC_DEVICE_ADDR_4] | adres modułu bajt 4 |
bbm_buf[BBMAGIC_DEVICE_ADDR_5] | adres modułu najstarszy bajt 5 – MSB |
bbm_buf[BBMAGIC_DEVICE_RSSI] | moc odbieranego sygnału radiowego w dBm |
Komunikacja
- Bluetooth Smart – Bluetooth Low Energy
- Komunikacja szyfrowana i podpisywana cyfrowo AES-128
- Bezpośrednia komunikacja z Raspberry Pi Zero W i Raspberry Pi 3 poprzez Bluetooth Smart
- Prosta obsługa programowa z wykorzystaniem biblioteki bbmagic_lib od wersji 2.0
Zasilanie
Moduł BBMagic PWM pobiera prąd o natężeniu ok. 12mA. Możliwe sposoby zasilania:
- Z jakiegokolwiek źródła o napięciu z przedziału: 1,8V do 3,6V – pady do wlutowania przewodów: 7 (+) i 8 (-)
- Poprzez stabilizator – Podłącz ‘+’ do 10, a ‘-‘ do 22, 23 lub 24. Pady do wlutowania stabilizatora w obudowie TO-92 – 7,8,9 (np.:L78L33, TS2950CT-3.3, LP2950CZ-3.3RAG, MCP1702-3302E, LM2936Z-3.3, LT1121CZ-3.3). Jak dobrać stabilizator: Jak zasilić BBMagic METEO moduł z Bluetooth Low Energy
Aby wysterować BBMagic PWM
Wystarczy dodać moduł do bazy aktorów:
bbm_pwm_add("moj_mod_pwm", "CBFD786BAA68", "2DFDA5070CD284A107A24F7e53572A7B38") ;
…i użyć funkcji 'bbm_pwm_set’:
bbm_pwm_set("moj_mod_pwm",10,20,50) ;
A na wyjściach CHANNEL_0, CHANNEL_1 i CHANNEL_2 pojawia się sygnały o wypełnieniu odpowiednio: 10%, 20% i 50%.