LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
SoM / SBC

[PROJEKT] KAmodRPI PwrRELAY – ekspander z wyjściami przekaźnikowymi dla komputerów Raspberry Pi – przykład w C

kamodrpi-pwrrelay-modul-wyjsc-przekaznikowych-dla-komputerow-raspberry-pi2-raspberry-pi-i-raspberry-pi

Sterowanie urządzeniami dużej mocy przez komputery jednopłytkowe wiąże się z koniecznością rozdzielenia zasilania obu stron układu sterowania. Do sterowania układów obciążających wyjścia do 0,5 A wystarczające jest zastosowanie małych i niedrogich tranzystorów. Układy zasilane większymi napięciami lub prądami wymagają zastosowania przekaźników. Naprzeciw tym wymaganiom wychodzi moduł KAmodRPI PwrRELAY. Moduł ten zawiera dwa wyjścia przekaźnikowe, zakończone złączami śrubowymi ARK oraz dwa wyjścia tranzystorowe. Zarówno wyjścia przekaźnikowe, jak i wyjścia tranzystorowe są sterowane za pomocą wyjść GPIO komputera Raspberry PI. W tym przykładzie pokażę, jak w prosty sposób można zrealizować sterowanie wyjściami, z poziomu programu w C oraz z wykorzystaniem modułu KAmodRPI PwrRELAY.

img_0645

Fot. 1. Układ testowy – Raspberry Pi + KAmodRPI Pwr RELAY

Program został napisany i skompilowany na komputerze Raspberry PI Model B z poziomu systemu Raspbian Jessie (wersja z: 27.05.2016).

Pierwszą czynnością po uruchomieniu systemu jest utworzenie katalogu, gdzie będziemy przechowywali nasz program wraz z skompilowaną wersją. W moim przypadku jest to katalog „KAmodRPI_PwrRELAY” w folderze domowym użytkownika.

schemat-pwrrelay

Rys. 2. Schemat połączeń stanowiska testowego

Kolejnym krokiem jest utworzenie pliku *.c, z przykładowym programem, w nowo utworzonym katalogu. Kod programu przedstawiam poniżej.

#include <stdio.h>
#include <wiringPi.h>

const int przekaznik_1 = 22;
const int przekaznik_2 = 23;
const int tranzystor_1 = 24;
const int tranzystor_2 = 25;

int main()
{
	wiringPiSetupGpio();
	
	pinMode(przekaznik_1, OUTPUT);
	pinMode(przekaznik_2, OUTPUT);
	pinMode(tranzystor_1, OUTPUT);
	pinMode(tranzystor_2, OUTPUT);
	
	while(1)
	{
		digitalWrite(przekaznik_1, HIGH);
		delay(1000);
		digitalWrite(przekaznik_2, HIGH);
		delay(1000);
		digitalWrite(tranzystor_1, HIGH);
		delay(1000);
		digitalWrite(tranzystor_2, HIGH);
		delay(1000);
		digitalWrite(przekaznik_1, LOW);
		delay(1000);
		digitalWrite(przekaznik_2, LOW);
		delay(1000);
		digitalWrite(tranzystor_1, LOW);
		delay(1000);
		digitalWrite(tranzystor_2, LOW);
		delay(1000);
		
		digitalWrite(przekaznik_1, HIGH);
		delay(1000);
		digitalWrite(przekaznik_1, LOW);
		digitalWrite(przekaznik_2, HIGH);
		delay(1000);
		digitalWrite(przekaznik_2, LOW);
		digitalWrite(tranzystor_1, HIGH);
		delay(1000);
		digitalWrite(tranzystor_1, LOW);
		digitalWrite(tranzystor_2, HIGH);
		delay(1000);
		digitalWrite(tranzystor_2, LOW);
		delay(1000);
	}
	
	return 0;
}

W powyższym programie korzystamy z dwóch bibliotek dostępnych w systemie są to: stdio.h i wiringPi.h. Pierwsza z nich to standardowa biblioteka wejść/wyjść programu, natomiast druga pozwala na bardzo proste sterowanie wyjściami GPIO komputera Raspberry PI. Definiujemy cztery stałe zawierające nazwy naszych wyjść oraz przypisujemy im odpowiedni numer GPIO komputera. Numery pinów GPIO możemy odczytać z warstwy opisowej płytki PCB modułu KAmodRPI. Pierwszą instrukcją w głównej funkcji programu jest konfiguracja portów GPIO do pracy oraz przypisanie funkcji do konkretnych pinów portu GPIO. W naszym przypadku wszystkie wyjścia od 22 do 25 są to wyjścia, stąd zapis:

pinMode(przekaznik_1, OUTPUT);
pinMode(przekaznik_2, OUTPUT);
pinMode(tranzystor_1, OUTPUT);
pinMode(tranzystor_2, OUTPUT);

Ostatnim elementem programu jest nieskończona pętla while w której kolejno są załączane i wyłączane porty GPIO z opóźnieniem 1 sekundy.

Program kompilujemy za pomocą kompilatora gcc, z poziomu terminala systemu operacyjnego. Kompilację przeprowadzamy wykonując polecenie:

gcc -o example_kamodrpi_PwrRELAY example_kamodrpi_PwrRELAY.c -l wiringPi

Polecenie wykonujemy będąc w katalogu, w którym znajduje się plik *.c z naszym programem.

Program uruchamiamy z poziomu terminala poleceniem:

sudo ./example_kamodrpi_PwrRELAY

Efekt działania programu prezentuje poniższy film:

Autor: Jakub Kuryło