Przekaźniki: tym razem Arduino (cz. 2)

Kontynuując temat sterowania kartą przekaźnikową za pomocą Arduino, udało mi się złożyć płytkę sterującą:
adf808972485009150a6000d44b862b417ec9c1d

Zgodnie z planem, zawiera:

  • Arduino ProMini (w gold-pinowym gnieździe);
  • Interfejs ICSP do programowania (zob. więcej o ICSP);
  • Złącze 26-pin do komunikacji z kartą przekaźnikową;
  • Przetwornicę step-down do konwersji napięcia 5V do 3,3V;
  • Interfejs bezprzewodowy nrf24l01;
  • Gniazdo zasilające DC USB/B;

Podłączenie ICSP
ICSP podłączyłem zgodnie z instrukcją:

Pin ICSP Pin Arduino
1:MISO 12
2:VCC VCC
3:SCK 13
4:MOSI 11
5:RST RST
6:GND GND

Używam programatora ICSP AVR USBasp mkII firmy msx-elektronika.pl.

Podłączenie karty przekaźnikowj
Na potrzeby komunikacji z kartą przekaźnikową, płytkę wyposażyłem w 26-pinowe złącze identyczne z GPIO. Kartę przekaźnikową z płytką połączyłem taśmą IDC.

Pin karty Port Arduino Opis na płytce
2:VCC Wtyk DC
6:GND Masa GND
15:K1 (GPIO22) PB1 9
19:K2 (GPIO10) PB0 8
21:K3 (GPIO9) PD7 7
23:K4 (GPIO11) PD6 6

Używam karty PAM4K firmy PAM z Jeleniej Góry.

Zasilanie
Zestaw ma być zasilany przez ładowarkę USB. Ze względu na to, że Arduino ma ograniczenie prądowe 200mA na nóżce VCC, pin 5V karty przekaźnikowej (2) zasialny jest bezpośrednio z gniazda DC. Dodałem zworkę, która przełącza źródło zasilania między ICSP i gniazdem DC.

Środowisko programowania
Używam Atmel Studio 6.2, do pobrania za darmo tutaj. Zatrzaśniecie przekaźnika sprowadza się do ustawienia odpowiedniego portu jako wyjściowy, np. dla K1:

DDRB |= 0b00000010;

i 'zapalenia’ odpowiedniego bitu:

PORTB |= 0b00000010;

Ale z oprogramowaniem to trochę mi zejdzie…
Pozdrawiam,
Arek

Dodaj komentarz