sobota, 27 kwietnia 2019

Moja przygoda z ARDUINO


Czy tego chcemy czy nie ARDUINO jest wokół nas.

W samochodzie wożę ze sobą tracker'a zbudowanego w oparciu o ARDUINO PRO MICRO.

Stację pogodową, emitującą w świat informacje o temperaturze, wilgotności i ciśnieniu atmosferycznym na mojej działce, mam zbudowaną na bazie ARDUINO PRO MICRO.

Podwójny i-GATE dla pasma 2 m i 70 cm (zdjęcia i opis we wcześniejszym poście) skonstruowany został w oparciu o 2 x ARDUINO NANO.

O ARDUINO NANO oparty jest mój analizator antenowy a właściwie skaner SWR wykonany w/g K6BEZ w wersji SP3NYR.

Moja drukarka 3D (opisana we wcześniejszym poście)  sterowana jest przez ARDUINO MEGA.

ARDUINO UNO PinOut

ARDUINO UNO Rev 3
mikrokontroler AVR ATmega328
osadzony w podstawce DIP28.
Złącza: USB typ B oraz DC 5,5/2,1.
Wymiar płytki 75 x 54 mm.

ARDUINO NANO
na punktach lutowniczych widać
pozostawioną podczas lutowania przeze mnie kalafonię.
Powinienem ją zmyć denaturatem.
Złącze mini-USB.
Wymiar płytki 45 x 19 mm.

STARTER SHIELD
Starter Shield'y zawierają najczęściej używane elementy t.j.: wyświetlacze, przyciski, przeróżne czujniki, brzęczyki, linijki i matryce LED, joysticki, klawiatury, głośniki, mikrofony, diody laserowe, silniki, serwa, itp. Występują jako "kity" do polutowania lub jako gotowe moduły. Producenci SHIELD'ów najczęściej dodają przykładowe oprogramowania i załączają biblioteki wbudowanych komponentów. Warianty oprogramowania obejmują rozwiązania od bardzo prostych do mocno skomplikowanych projektów.
Poniżej opisuję swoje doświadczenia z kilkoma shield'ami.

LCD Keypad Shield

Jest to chyba najczęściej wykorzystywany gotowy shield. Ten będący w moim posiadaniu (na załączonych zdjęciach) jest w wersji 1.0. Obecnie na rynku występuje w wersji 1.1.
Wbudowany wyświetlacz tekstowy posiada dwa wiersze po 16 znaków. Wyposażony jest w 16-pinowe złącze. Podświetlany jest jedną diodą. Kolor znaku - biały, kolor podświetlania - niebieski. W gotowych shield'ach wyświetlacz bywa jeszcze oferowany jako żółto - zielony. Wyświetlacz sterowany jest przez układ HD447804 w trybie 4-bitowym. Sterownik może obsłużyć wyświetlacze 4-wierszowe do 40 znaków w każdym wierszu. Oto tablice znaków bezpośrednio dostępnych dla wyświetlacza dla kodu A01 i dla kodu A02. Własne znaki można edytować w kreatorze a zapisać można maksymalnie 8 własnych znaków. Można również stworzyć duże znaki obejmujące dwie linie wyświetlacza.


Należy użyć biblioteki LCD4bit library: LiquidCyistal, LcdBarGraph.
Za chwilę dostępna będzie uniwersalna biblioteka LCD obsługująca wyświetlacze:
4 bit, 8 bit, I2C, Shift Register i SPI.
Podłączenie wyświetlacza LCD w trybie 4-bitowym.
Schemat dla tych, którzy nie korzystają z gotowego shield'a.

Obraz po wczytaniu dołączonego oprogramowania testowego.
Aby poprawnie działały przyciski w Shield w ver 1.0
należy przedefiniować "speed reasons" dla przycisków.
  
Po zadeklarowaniu pinów LCD:
LiquidCrystal  lcd(8, 9, 4, 5, 6, 7);
możliwe jest wprowadzanie pierwszych tekstów.
Poniżej skech.
#include <LiquidCrystal.h>

// lcd(RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int numRows = 2;
int numCols = 16;

void setup()
{
  Serial.begin(9600);
  lcd.begin(numRows, numCols);
  lcd.clear();
}
void loop()
{
  lcd.setCursor(2,0);
  lcd.print("Moje ARDUINO");
  lcd.setCursor(2,1);
  lcd.print("jest super !");
}

Wpisywanie tekstów z monitora portu szeregowego:

                   - znak | czyści ekran wyświetlacza
                   - znak / przenosi kursor do nowego wiersza


#include <LiquidCrystal.h>

// lcd(RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int numRows = 2;
int numCols = 16;

void setup()
{
  Serial.begin(9600);
  lcd.begin(numRows, numCols);
  lcd.clear();
 }

void loop()
{
  if (Serial.available() > 0) 
  {
    char ch = Serial.read();
    if (ch == '|')
    {
      lcd.clear();
    }
    else if (ch == '/')
    {
         lcd.setCursor(0, 1);
    }
    else
    {
      lcd.write(ch);
    }
  }
}

Pierwszy tekst w "negatywie".
SERDUSZKA jako znaki specjalne !
A co z polskimi literami ?
Jeszcze brakuje "Ż".
Znaleziona w necie pierwsza gra...
W samej grze biorą udział tylko przyciski UP i DOWN.

Generator wyników gier liczbowych.
Przyciskami LEFT i RIGHT wybieramy ilość wylosowanych liczb.
Przyciskami UP i DOWN wybieramy pulę liczb do losowania.
Przyciskiem SELECT rozpoczynamy losowanie.

BIG FONT - jeden znak wyświetlany jest w dwóch wierszach.
Wyświetlacz  może wyświetlić cztery znaki jednocześnie.
Wymagana jest biblioteka o nazwie: phi_big_font.h
W wyświetlaczu dolutowałem listwy kołkowe z rastrem 2,54 mm.

Pierwszy wyświetlacz, jaki kupiłem,
miał białe znaki z niebieskim podświetleniem,
dziś bardziej podobają mi się
 czarne znaki z podświetlaniem zielonym.


Uproszczony schemat LCD Keypad Shield.

Wyprowadzenia pinów z LCD KeyPad w tym piny JCSP.

Odnalazłem program, którym można zmierzyć dzielniki napięcia realizowane przez klawiaturę LCD KeyPad. Okazało się, że mocno się różnią od zadeklarowanych na powyższym rysunku. Trzeba pamiętać aby klawiaturę przedefiniować w swoich projektach. Pomoc można odnaleźć na stronie: https://github.com/nettigo/NettigoKeypad/.

Lutowany układ HD447800 - oryginalna wersja HITACHI.
Zdjęcie wykonałem na odwrocie płytki wyświetlacza
4-wierszowego po 20 znaków w każdym.
Obecnie chip ukryty jest pod czarną kropką z żywicy.
Oczywiście na czarnej "kropce" nie ma żadnego napisu !
Porównanie wyświetlacza 2004 japońskiego z chińskim.
Przykładowy wpis na wyświetlaczu 2004
z czarnymi "kropkami" z dolnego zdjęcia.
Konwerter posiada adres 0x27 szesnastkowo na magistrali I2C.
  Poniżej skech.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define BACKLIGHT_PIN 3
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);

void setup()  
{
  lcd.begin(20,4);   
  lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE); 
}
void loop() 
{
  lcd.setCursor(3,0); 
  lcd.print("Serdecznie witam");
  lcd.setCursor(6,1); 
  lcd.print("na moim blogu");
  lcd.setCursor(0,2); 
  lcd.print("SP5QWJ.BLOGSPOT.com");
  lcd.setCursor(0,3); 
  lcd.print(">>>>>>>>>>>> Slawek");
}

Konwerter LCM1602 I2C do wyświetlacza LCD

Na spodniej części płytki konwertera mamy trzy pary punktów lutowniczych.
Od sposobu połączenia tych punktów zależy adres dla magistrali I2C.
Standardowo punkty lutownicze nie są połączone - wtedy adres LCD to 0x27.
W przypadku polutowanych trzech par punktów mamy adres - 0x20.
Poniżej zaprezentowane są możliwe do uzyskania adresy.
(+) oznacza zwartą parę punktów lutowniczych
(O) oznacza otwartą parę punktów lutowniczych

A0   A1   A2

O     O O 0x27
+      O O   0x26
O + O 0x25
+ + O   0x24
O O      + 0x23
+ O      + 0x22
O + + 0x21
+ +      +    0x20

Widzimy, że mamy dostępnych osiem adresów dla magistrali I2C;
tym samym maksymalnie możemy skorzystać z ośmiu wyświetlaczy.
Każdy LCD musi mieć unikalny adres dla magistrali I2C.
Konwertery występują w kilku wariantach. Najpopularniejszy jest oparty o chipset PCF8574T i ten właśnie posiada adres 0x27. Możemy natrafić na inne wykonanie konwerterów z innymi adresami:

Chipset PCF8574      - 0x20
Chipset PCF8574T   - 0x27
Chipset PCF8574A   - 0x38
Chipset PCF8574AT - 0x3F

Dla upewnienia się z jakim adresem mamy do czynienia należy skorzystać z programu I2C Scanner.
Program sczytuje adresy wszystkich aktualnie podłączonych urządzeń.


1602 LCD I2C MCP23017 SHIELD

Wyświetlacz sterowany poprzez magistralę I2C zajmuje jedynie dwa piny cyfrowe i trzy piny do podświetlenia. Dwa piny magistrali I2C mogą być wykorzystane przez inne adresowalne czujniki np.: RTC. Dodatkowo pięć pinów zajętych jest przez pięcio-kierunkowy joystick.
Kontrast wyświetlacza możemy regulować potencjometrem.
Nie ma możliwości sterowania jasnością wyświetlacza.

Shield nie pasuje do ARDUINO MEGA - piny I2C należy wtedy podpiąć zewnętrznymi przewodami.

Chipset Shield oparty jest o chipset MCP-23017.

Chipset oferuje 16 portów po magistrali I2C.
Wyżej opisany w blogu chipset PCF8574 oferował nam jedynie osiem portów.
Jest to 16-bitowy ekspander we/wy. Jednak shield wykorzystuje jedynie 8 bitów.
Charakteryzuje się bardzo niskim prądem czuwania: maksymalnie 1µA.
Podstawowy adres wyświetlacza to: 0x20
Biblioteka do obsługi układu znajduje się na stronie Adafruit github

   - LCD -
RS    - GPB7
R/W  - GPB6
E       - GPB5
D4    - GPB4
D5    - GPB3
D6    - GPB2
D7    - GPB1

-  JOYSTICK  -
UP           -  GPA3
DOWN    -  GPA2
LEFT       -  GPA4
RIGHT    -  GPA1
MIDDLE -  GPA0


W prawym dolnym rogu płytki wyświetlacza mamy joystick z pozycjami:
UP, DOWN,
LEFT, RIGHT,
i MIDDLE po przyciśnięciu joystick'a.
Do zdjęcia zdjąłem folijkę z wyświetlacza (!).


#include <Wire.h>
#include <Adafruit_RGBLCDShield.h>
#include <utility/Adafruit_MCP23017.h>
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.setCursor(1,0); 
  lcd.print("Witam na blogu");
  lcd.setCursor(4,1); 
  lcd.print("-SP5QWJ-");
}
void loop()
{
}




DIGIT Shield

Czterocyfrowy, siedmiosegmentowy wyświetlacz LED 0,56"
Ułatwia wyświetlanie liczb całkowitych i zmiennoprzecinkowych.
Z ARDUINO shield połączony jest tylko czterema pinami: 2, 3, 4, 5.

PCB DIGIT Shield
Digit Shield ver 1    z uruchomioną prostą aplikacją.
Na wyświetlaczu  "świeci"  folijka ochronna.



Biblioteka DIGIT Shield
Biblioteka nie obejmuje LEONARDO.
Bardzo proste przykłady


2,4" TFT LCD Display Shield Touch Panel
kontroler ST7781 (ID=0x7783)
biblioteka ADAFRUIT ILI932X zmodyfikowana do ST7783


Displey jeszcze z naklejoną folijką.

2,4" po zdjęciu folii obraz wyświetla z błędem !
Nie znalazłem jeszcze przyczyny błędu.
Rozdzielczość 240 x 320 pixeli  18 bit
Sterownik ST7781

Tick Tock Shield

* DS1307 RTC - popularny układ do odmierzania czasu,
                            I2C, 2 V do 3,5 V, 1 mA,
                            wymaga zewnętrznego kwarcu 32,760 Hz  12,5 pF   +20 ppm
                            posiada pamięć o rozmiarze 56 bajtów,
                            której zawartość musi być podtrzymywana bateryjnie.
* Adjustable Time Parameters.
* TM1636 - sterownik wyświetlacza 7-segmentowego LED
* Thermistor-based Thermometer.
* LDR-based Lux/ Light Intensity Meter.
* RTC Battery Voltage Measurement.

Tick Tock Shield program demonstracyjny

Sterownik TM-1636 wyświetlacza 7-segmentowego.
Znajduje się w podstawce pod wyświetlaczem.

Sam lutując prototypowe obwody układy scalone montuję w podstawkach. Podoba mi się, że w tym shield'zie scalaki: TM1636 i DS1307 oraz wyświetlacz LED typu TOF-5461BS są właśnie zamontowane w podstawkach.
Tick Tock Shield podczas testowania przycisków i diod LED.
Bez kłopotu udały się testy buzera.
Z zegarem natrafiłem na problem. Dołączone biblioteki
nie działały na platformie ARDUINO UNO R3.
PCB



Uproszczony schemat Tick Tock Shield.
Po zakupieniu tego shield'u nie poradziłem sobie z uruchomieniem zegara.
Próby wczytania dołączonych bibliotek spełzły na niczym, nie były zgodne z platformą ARDUINO UNO R3. Szukając w necie opisu i uwag natrafiłem na następujący post z 31 stycznia 2016 roku:

The I2C pins differ from the Arduino 328 to the Arduino 2560. This is solved on the R3 versions of the boards (which I use) by adding additional I2C pins (SDA, SCL) next to AREF on both boards. Unfortunately the Starter Shield EN (Tick Tock shield) does not use the new I2C pins, instead it is wired to Analog 4 and Analog 5. I solved this issue by placing two wires from pin 20 and 21 (SDA, SCL)on the 2560 to pin A4 and A5 (SDA, SCL) on the shield on top of the 2560.

Nie brałem pod uwagę możliwych błędów hardwarowych ?!

Już wszystko działa poprawnie - dowodem są załączone zdjęcia:

Godziny i minuty.
Wyświetlacz czerwony.
Rok
Wyświetlacz czerwony.






Ustawianie dnia tygodnia.
Wyświetlacz - tym razem założyłem żółty,
mam jeszcze wyświetlacz blado-zielony.
Termometr
Odczyt 21* C
Wciskając kolejno przycisk K3 na wyświetlaczu mamy następujące informacje:* CZAS - godziny i minuty
* DATA - dzień i miesiąc
* ROK - postać czterocyfrowa
* DZIEŃ TYGODNIA - umieściłem mało czytelne "hieroglify" na powyższych zdjęciach
* TEMPERATURA - pomiar z termistora 10 kOhm
*  NATĘŻENIE OŚWIETLENIA - pomiar z fotoopornika 10 kOhm
* NAPIĘCIE BATERII PODTRZYMUJĄCEJ ZEGAR w [mV] - CR220 - 3 V, 40 mAh


Wyprowadzenia wyświetlacza TOF-5461BS   12 pinów, 0,56"

Multi Purpose Shield



2-way button module
2-way LED module
Full Color LED Module
IR receiver module
Brightness sensor module
LM35D temperature sensor module
Passive buzzer module
Rotary potentiometer module
DHT11 temperature and humidity sensor module
One I2C interface (A4 SDA, A5 SCL)
One TTL serial port
Two channel digital ports (D7, D8)
One channel analog port (A3)
Reset buton
Widok płytki od strony sensora temperatury, odbiornika podczerwieni i elementu światłoczułego.

Wyprowadzenia LM35D.
Opis
Źródło przydatnych bibliotek
Biblioteka z IRremote.h i dht11.h

Należy użyć bibliotek: IRremote.h i dht11.h

Istnieją dwa czujniki DHT11 i DHT22. Różnią się dokładnością i zakresem działania.
Czujnik DHT11 jest mniej dokładny i nie nadaje się do pomiaru temperatur ujemnych.
Trzeba o tym pamiętać budując "prawdziwą" stację pogodową.
Dokładność pomiaru temperatur dla czujnika DHT22 jest 4x większa niż DHT11.
Zakres pomiaru wilgotności dla DHT11 jest od 20-80%  dla DHT22 od 0-100%

Uproszczony schemat Multi Purpose Shield.
SD Shield w wersii 3.0

Obsługuje karty SD i TF popularnie zwane kartami micro SD.
Shieldy SD mogą być spinane w stosy.

SD Shield z włożoną kartą SD.
Pod spodem płytki jest kieszeń na kartę micro SD.
Uproszczony schemat karty SD.

ETHERNET Shield end SD Card

Adres IP dla shield należy nadać samemu z puli adresów wewnętrznej sieci.
10.0.1.x lub 192.168.1.x . "X" w podanym adresie musi być liczbą z zakresu 1 do 255.
Oczywiście wybrany adres aktualnie nie może być używany. Osobiście do określenia zajętych adresów IP używam programu PortScan.

Sygnalizacja stanów pracy modułu za pomocą diod LED:
* PWR: stan zasilania modułu
* LINK: status podłączenia do sieci, sygnalizacja ruchu w sieci
* FULLD: połączenie sieciowe full duplex
* 100M: sygnalizacja prędkości sieci 100 Mb/s (led off - 10 Mb/s)
* RX: sygnalizacja odbierania danych przez moduł
* TX: sygnalizacja wysyłania danych przez moduł
* COLL: kolizja w sieci
Shield obsługujący ethernet oparty o mikroukład.
WIZnet W5100.

Multi Motor Control L293D Shield

Biblioteka i przykładowe oprogramowanie.
Opis
Motor Control Shield L293D.
4-kanałowy sterownik pół-H  silniki: 4,5 V do 36 V.
Maksymalny prąd 600 mA na każdy kanał - w piku 1,2 A na kanał.
W górnej części widać przewody odchodzące do Micro Servo SG90.




4 CHANNEL RELAY Shield

Wlutowane przekaźniki mają rezystancję wewnętrzną cewki 125 Ohm.
Napięcie minimalne do zadziałania przekaźnika to 3,8 V DC, maksymalne: 6,5 V DC.
Pobór mocy przez jeden przekaźnik:  0,2 W.
Napięcie testowe 1.000 V.
Jeden styk przełączający o maksymalnym prądzie przełączania 5 A.
Maksymalne napięcie przełączane 60 V DC  i  240 V AC.
Maksymalna obciążenie styków roboczych przekaźników dla 24 V DC wynosi 3 A.
Dopuszczalny prąd dla napięcia 240 V AC to 1 A.

Uproszczony schemat 4 Channel Relay Shield.
Powstał shield w wersji 3.0., na pokładzie którego zostały zamontowane cztery przekaźniki o obciążalności styków 10 A 250V AC - możliwe jest wtedy bezpośrednie podłączenie odbiorników domowych. Płytka drukowana ma cynowane ścieżki o dużym przekroju.

Na płytce drukowanej widać szerokie ścieżki,
które mają przewodzić prąd do 10 A.
Tak jest dla przekaźników 1, 2 i 3.
Przekaźnik nr 4 potraktowany został troszkę
po macoszemu.

Płytka z przekaźnikami w wersji 3A.


ESP8266-12E WiFi UART Wireless Shield

Płytka kompatybilna z WeMos D1 WiFi ESP8266
Działa w oparciu o moduł ESP-8266EX z wbudowaną anteną PCB
Wbudowany konwerter USB-UART (CH340G)
Rozstaw złączy kompatybilny z Arduino UNO R3
Po instalacji dodatku ESP8266 Core możliwość programowania przy użyciu Arduino IDE
Ilość wejść / wyjść cyfrowych: 11 (maksymalne napięcie linii: 3,3 V)
Wejście analogowe: 1 (zakres napięcia zasilania: 0 - 3,3 V)
Obsługuje bezprzewodową aktualizację firmware (OTA)
Wbudowany stabilizator napięć: 5 V / 1 A  oraz 3,3 V
Wbudowany przycisk zerowania mikrokontrolera (RESET)
Maksymalne napięcie wejściowe (wtyk 5,5 x 2,1): 24 V DC
Możliwość zasilenia poprzez złącze micro-USB
Wymiary płytki: 69  x 54 x 15 mm

Ogólny widok płytki.

Moduł WiFi 802.11 b/g/n z układem ESP8266,
na złączu jest 9 linii GPIO oraz 1 linia ADC.
Częstotliwość: 2,4 GHz.
Poziom mocy nadawanej: +25 dBm.
Wbudowana antena PCB.

Na pokładzie wlutowany jest stabilny, przemysłowy moduł WiFi ESP8266 charakteryzujący się dużą odpornością na zakłócenia. Antena PCB.
Cztery diody LED wyświetlają status ESP8266:
* PWR: stan zasilania modułu
* DFU:
* AP:
* STA:


PROGRAMATOR AVR ISP Shield   "OPEN-SMART"

Mój programator z osadzonym mikrokontrolerem ATMEGA 328P-PU.
Uwaga ! na zdjęciu mikrokontroler jest niewłaściwie umieszczony.
Wycięcie na chip'ie powinno być od strony dźwigni podstawki ZIF !

Shield ułatwiający wgrywanie bootloader'a lub swojego kodu na nową kość ATmegi.
Można skorzystać z ArduinoISP ustawiając programator: Arduino as ISP, następnie należy mikrokontroler umieścić w podstawce ZIP i wydać komendę Wypal booloader.
Można skorzystać z oprogramowania o nazwie: OPENSMART_ISP pobrane ze strony:
https://github.com/RalphBacon/Bootloader-Shield-8MHz  Działa wtedy głośniczek.
ZIF (Zero Insertion Force) 28 pin.
Obsługuje: ATmege328P, ATmega168P, ATmega8 oraz płyty ARDUINO: UNO, MEGA, NANO i PRO MINI - korzystamy wtedy z ISP-6 pin lub ISP-8 pin..
Na pokładzie wlutowany jest buzer, który obok diod LED, informuje o sukcesie pojedynczym dźwiękiem lub błędzie programowania dźwiękiem podwójnym.
Zasilany jest napięciem 5 V. Podczas programowania pobiera maksymalny prąd 500 mA.


RGB LED 2812 PIXEL MATRIX Shield

Moduł wyposażony w 40 LED RGB WS2812
Napięcie zasilania: 5V
Sterowanie: pin 13 z Arduino
Wymiary: 68 x53mm
Przesyłkę z Chin otrzymałem w bardzo ładnym kartonowym pudełeczku.

Pojedyńczy element WS 2812.
Zdjęcie wykonane zestawem makro opisanym we wcześniejszym poście.

"WS2812" to sterownik WS2811 zamknięty w obudowie diody RGB.
Ogromną zaletą tego układu jest jego zdolność szeregowego łączenia, a także możliwość sterowania praktycznie dowolną ilością diod RGB tylko za pomocą pojedynczego pinu cyfrowego mikrokontrolera za pośrednictwem magistrali 1-Wire.

Zdjęcie WS2812 zapożyczone z internetu.




Wymaga wczytania biblioteki Adafruit_NeoPixel.h
Opis
Biblioteka

KLAWIATURA 4x4 + WYŚWIETLACZ LCD NOKIA  5100
iBridges ver. 1.2



Monitor portu szeregowego podczas sprawdzania klawiatury 4x4.
Należy ustawić szybkość transmisji na 115200 baud.
Jak widać ARDUINO Uno zostało wpięte w port COM-13.



Klawiatura z wpiętym wyświetlaczem LCD Nokia 5110.
Mój wyświetlacz ma inne wyprowadzenia,
bezpośrednie podłączenie jest niemożliwe !
Na rynku jest jeszcze jedna wersja wyświetlacza NOKIA.

Wyświetlacz monochromatyczny Nokia 5110  48x84 pixeli
w wersji z innymi wyprowadzeniami niż zakupiony przeze mnie.


Monochromatyczny wyświetlacz graficzny wykorzystywany w telefonach Nokia 5110.
Rozmiar: 48 wierszy i 84 kolumn.
Wykorzystuje sterownik PCD8544.
Komunikacja odbywa się poprzez interfejs szeregowy SPI.
Wymiary modułu: 45 x 45 mm.

Opis wyprowadzeń wyświetlacza NOKIA 5110 LCD.
Przesyłkę z Polski otrzymałem z rozlanym wyświetlaczem.
Tabela pokazuje, jak wyświetlacz został podłączony w zaprezentowanym skech'u.
Krótki napis na wyświetlaczu NOKIA 5110
Poniżej skech.
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

void setup() {
display.begin();                          
display.setContrast(50);                  
display.clearDisplay();                   
}
void loop() {
  display.setTextSize(1);                   
  display.setTextColor(BLACK);              
  display.setCursor(3,5);                   
  display.print("Zapraszam na");
  display.setTextColor(BLACK);        
  display.setCursor(14,17);                   
  display.print("moj blog");
  display.setTextColor(BLACK);   
  display.setCursor(3,30);
  display.setTextSize(2);
  display.print("SP5QWJ");
  display.display();
}


Link do Wiki: https://www.itead.cc/wiki/IBridge gdzie zamieszczony jest prosty programik.
Producent IBridge do chwili publikacji bloga opracował trzy wersje płyki 4x4.


ADAPTER X|Bee Bluetooth SRS485 RS485/APC220  I/O Sensor  ver. 5.0


Opis złączy adaptera XBee.
- 14 portów wejścia/wyjścia (12 interfejsów serw) oraz zasilania
- Interfejs: RS485
- Interfejs:
                IIC
                I2C
                TWI
- Przycisk reset
- Interfejs transferu zgodny z XBee/Bluetooth
  XBee to proste w użyciu bezprzewodowe moduły komunikacyjne.
- Bee Bluetooth - wejście dla zewnętrznego zasilania (włączane przyciskiem)
- Konwerter napięcia
- Piny z wyjściem 3V3

- Wsparcie dla kart SD

Płytka adaptera XBee wpięta w Arduino UNO


VS1053B MP3 MUSIC Shield

Odtwarza wiele formatów muzycznych
Dekoduje dźwięk
Posiada interface SPI
Wyjście słuchawkowe 30 Ohm
Wejścia LINE IN
Zabudowany mikrofon
Gniazdo kart SD - umożliwia odtwarzania plików MP3 z karty SD

Opis
Wymagane biblioteki

TERMINAL Z ZACISKAMI ŚRUBOWYMI

Terminal pozwalający wpiąć płytkę Arduino UNO wyposażony w listwy z zaciskami śrubowymi o rastrze 3,5 mm.
Dzięki takiemu rozwiązaniu bez problemu możemy podłączyć do naszego Arduino dowolne urządzenie z wyprowadzeniami w postaci kabli.
Płytka PCB pomiędzy złączami terminala zawiera pola o rastrze 2,54 mm czyli 1/10 cala, pozwalające w trwały sposób przylutować dodatkowe elementy potrzebne w projekcie. Część punktów lutowniczych jest połączonych część wolnych. Dioda LED podłączona jest do punktu D-13.

Terminal z zaciskami śrubowymi.



IO SHIELD

Shield umożliwia w łatwy i przejrzysty sposób podpięcie sensorów do ARDUINO.

IO Shield.

ARDUINO-NANO do ARDUINO-UNO SHIELD

Dzięki tej płytce możliwe jest uruchomienie fabrycznych shield'ów przygotowanych dla platformy UNO przez miłośników platformy NANO.
Na płytce jest pełna kompatybilność pinów ARDUINO-UNO R3.
Płytka posiada gniazdo zasilania od 7-12 V, regulatory napięć 3,3 V i 5 V.
Zasilanie poprzez gniazdo USB zabezpieczone jest bezpiecznikiem 500 mA.


Przykładowa konfiguracja płytki.....


NANO TERMINAL ze złączami śrubowymi.

Adapter przeznaczonych dla płytek Arduino Nano
oraz innych posiadający ten sam rozstaw wyprowadzeń np. płytek z serii Nucleo.

Terminal Arduino NANO, NUCLEO ze złączami śrubowymi
Terminal z "zapiętym" ARDUINO NANO.


PŁYTKA PROTOTYPOWA type -1-

Na płytce o rastrze 2,54 mm (1/10 cala) mamy:
- dwie diody LED
- dwa przyciski micro-swich
- miejsce lutownicze pod układ 14-Pin SOIC SMD
- złącze ISP

Płytka prototypowa o rastrze 2,54 mm.

PŁYTKA PROTOTYPOWA type -3-

Prototype PCB Protoshield for Arduino UNO R3.

Płytka wykonana jest w rastrze 2,54 mm czyli 1/10 cala,
Średnica otworów:  0,9 mm czyli 0,035 cala.
Wymiary płytki: 68,58 mm x 53,34 mm
Grubość PCB: 1,6 mm
Materiał PCB: FR-4 fiber-glass.


PŁYTKA PROTOTYPOWA COMBO 

ARDUINO UNO R3 oraz płytki prototypowe wykonane są w rastrze 2,54 mm.
Popularnie raster 2,54 określany jest jako 1/10 cala, jednak dokładnie są to  3/32 cala.
Wiele modułów dla ARDUINO przygotowanych jest w rastrze 2,0 mm.
Raster 2 mm w przeliczeniu daje nam ułamek 5/64 cala.
Lekarstwem na pogodzenie różnych rastrów jest płytka prototypowa COMBO, która na swojej powierzchni ma wydzielone pole z rastrem 2 mm.




MOJE STANOWISKO "PRÓB i TESTÓW" z  PŁYTKAMI STYKOWYMI ver 1.0


Budowę stanowiska prototypowego rozpocząłem od zamontowania na płycie ze szkło-epoksydu o wymiarach 225 x 305 mm dwóch uniwersalnych płytek stykowych po 830 pól każda
(830 Point Testing PCB Breadboard) (Solderless Prototype Breadboard). Szkło-epoksyd był na tyle mało sztywny, że poza narożnymi nóżkami musiałem dodać nóżkę podpierającą w środku całe stanowisko prototypowe.
Dodałem jeszcze dwie długie zasilające płytki stykowe 100 polowe - te przy dolnej krawędzi stanowiska. Mają one tą samą długość co płytki stykowe 830 polowe a szerokość tylko dwóch wierszy oznaczonych kolorami i nadrukami:  (+) i (-).
Płytki wyposażyłem w moduły zasilające 3,3V i 5V z gniazdem USB, przełącznikiem i diodą LED.
Wąskie płytki stykowe zaopatrzyłem w gniazda DC 2,5/5,5.
Na stanowisku znalazło się ARDUINO UNO R3.
Szybko przykręciłem wyświetlacz LCD 1602 wraz z wlutowanym "odwrotnie" modułem I2C. Tak aby można było spokojnie regulować jasność wyświetlacza i aby był dostęp do zworki.
Problemem była decyzja jaki kolor wyświetlacza wybrać ?!
Następnie zamontowałem trzy liniowe potencjometry obrotowe: 1 KOhm, 10 KOhm i 100 KOhm.
Kolejny był 3-cyfrowy woltomierz.
Następnie:
- wyświetlacz 8-cyfr 7-segmentowy z kontrolerem MAX-7219,
- matryca 8x8 LED ze sterownikiem MAX-7219-CNG,
- zestaw dwóch przekaźników z cewką 12V DC z optoizolacją, obciążalność styków 10A 250V AC,
- przetwornica impulsowa DC-DC step-down oparta o LM-2596 z wyświetlaczem,
- klawiatura 4x4 KeyPad,
- silnik krokowy.
W płytkę stykową widać wpięty moduł ze złączem śrubowym ARK.
Całość zasilam z zasilacza impulsowego 12 V  5 A.

8 komentarzy:

  1. Dzień dobry Panie Slawku :) z tej strony Paulina - z afrykańskiej wycieczki. Będę wdzięczna za kontakt i ewentualny link do zdjęć! :)
    plinowska@gmail.com

    Pozdrowienia od rodzinki.

    OdpowiedzUsuń
  2. Thanks, l like you! l am atextel, We have the hdmi lcd touch display suppliers in china

    OdpowiedzUsuń
  3. Obwody drukowane można z powodzeniem zamawiać od firm zajmujących się ich produkcją. Takie firmy wykonują płytki zgodnie z projektem klienta, również najbardziej zaawansowane technologicznie układy. Zaopatrują one także duże przedsiębiorstwa dlatego są w stanie realizować zlecenia w każdej ilości.

    OdpowiedzUsuń