Jak też mówiłem tak też zrobimy na początku parę prostych ćwiczeń by poznać możliwości sterowania w praktyce prostymi układami, z których niczym z klocków można będzie przystąpić do budowy aplikacji na nieco wyższym poziomie i wyższych lotów ,
Nie mniej warto poznać wszystko od zera i od najprostszych zabaw przez co wszystko stanie się jaśniejsze i prostsze ....
To co zaczynamy??
Ćwiczenie 1 :Sterowanie wyjściem cyfrowym:Jest to podstawowe „Hello World” które wykorzystamy by coś włączyć lub wyłączyć.
W tym przykładzie będzie to nasza zielona dioda LED, która jest podłączona do pinu D13
na płytce SunDuino. Spowodujemy że będzie ona mrugać 1 raz na sekundę. Rezystor też pominiemy bo jest już wbudowany na płytce pozostaje nam napisać program więc do dzieła.
Schemat prezentuje się następująco jakbyście chcieli podłączyć diodę do innych pinów:

Sam program zaś tak i mozna go znaleźć w zakładce examples:

No i proszę nasza zielona diodka miga radośnie J Właśnie napisaliśmy pierwszy program
I ożywiliśmy trochę nasze SunDuino. A teraz stosując się do schematu ustaw diodę w programie na inny pin od 0 do 13 samodzielnie
Ćwiczenie 2: Wejście cyfrowe
Czyli jak uzyc przycisku 

Jest to najprostsza forma wprowadzania danych ma tylko 2 stany TAK lub NIE.
Przykład stanowi prosty przełącznik lub przycisk podłączony do Pin D2.
Gdy przycisk jest wciśnięty wejście będzie mieć stan HIGH i włączy nam diodę LED.
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Ćwiczenie 3: wysoki prąd wyjściowy
Czyli jak sterować większymi odbiornikami na wyższe napięcie i większy prąd.
Czasami konieczne jest sterowanie urządzeniami o większym zapotrzebowaniu na prąd niż 40mA. W tym przypadku można użyć tranzystorów MOSFET do włączania wyższego prądu obciążenia. Poniższy przykład załącza tranzystor 5x na sekundę.
Uwaga: Schemat pokazuje przykład podłączenia silnika , ale zamiast niego można dać np. 12V żarówkę samochodową


Nasz program zaś następująco:

Podłączcie dokładnie jak na schemacie

inaczej spalicie mikrokontroler , tym sposobem można sterować przekaźniki , silniki i wiele innych urządzeń na wyższe napięcie i o większym poborze prądu.
Ćwiczenie 4: Używamy Wyjść PWM - Pulse With Modulation
Pulse Width Modulation (PWM) jest sposobem na wyjście analogowe.
Sygnał na tym wyjściu może być modyfikowany liniowo jak w układach analogowych
poprzez modulację impulsów wypełnienia oraz czas ich trwania.
Może to być użyte do płynnego rozjaśniania diod LED czy tez do sterowania serwami i obrotami silników. Poniższy przykład powoli rozjaśnia i przyciemnia LED za pomocą pętli for.
Schemat jak widzicie jest dla jednej diody , ale podobnie możecie się pobawić dioda RGB wystarczy lekko zmodyfikować program dla trzech kanałów PWM które są oznaczone na płytce xxxDUINO.
Program:
Ćwiczenie 5: Użycie przetwornika analogowo-cyfrowego ADCW tym przykładzie użyjemy wejścia AnalogIN 0 , który pełni funkcję ADC mogące przyjmować wartości analogowe w zakresie 0-1023. podłączymy tam potencjometr i będziemy sterować szybkością migania diody LED.
Schemat połączenia do SunDuino jest prosty jak widać , PIN oznacza dowolny ANALOG_IN w naszym przypadku będzie to AnalogIN_0 bo taki zdefiniowaliśmy w programie


A tak wygląda program sterujący prawda, że proste

język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
jak widzicie łatwo można sterować programem z dwóch potencjometrów pobawcie się tym programikiem chwilkę , pozmieniajcie porty diody dodajcie więcej diodek i drugi potencjometr prawda ze ciekawa zabawa:)
Ćwiczenie 6: Sterowanie silnikami DC Do sterowania silnikiem DC wystarczy tranzystor , ale gdy chcemy zbudować robota
powinniśmy wybrać sterowanie z podwójnego mostka H jakim jest np L293D, który
pozwoli nam w prosty sposób sterować niezależnie dwoma silnikami DC w zakresie kierunku obrotów oraz szybkości dla każdego z silników osobno.

Schemat jest następujący:

Poniżej przykładowy program sterujący silnikami:
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Mam nadzieję, że program jest jasny i nie wymaga tłumaczenia.
Ćwiczenie 7: termometr LM32To malutki projekcik , w którym użyty zostanie scalony termometr LM35 , a jego wskazania będą prezentowane na terminalu.
Jak wiadomo LM35 jest termometrem Analogowym w przeciwieństwie do DS18B20 który jest Cyfrowy

Dlatego o jego obsługi użyjemy funkcji analogRead(pinx). Wyjście LM35 przyjmuje analogowe wartości w zakresie:
0(poziom GND) do 1023(poziom +5V),
Sunduino udostępnia nam 10 bitowy przetwornik A/C gdzie wartości są:
210 = 1024 więc musimy dokonać konwersji by odczytywać prawidłowo pełny zakres LM35.
W tym przypadku przyda nam się dzielnik, który wyliczymy na podstawie wzoru:

A oto program:

UFF .... tymczasem to wszystko ... co mam na razie dla was, ale inne troszkę przykłady znajdziecie też na naszym forum w DIY w tematach :
topic116.html -- efekt plomyka
topic79.html -- obsługa czujnika SHT21
topic97.html -- woltomierz
topic1059.html -- 16 kanałowy sterownik oświetlenia LED
topic93.html -- obsługa serwomechanizmów
topic113.html -- prosty terminal z użyciem wyjścia TV
topic92.html -- użycie matrycy LED 8x8
topic101.html -- led CUBE 3x3x3
topic80.html -- Obsługa pastylek Ibutton > magistrala 1Wire
topic816.html -- Prosty robocik mini sumo
topic1062.html -- wykorzystanie 3osiowego akcelerometru z kontrolera WII
topic903.html -- prosty oscyloskop 2 kanałowy z GLCD
Warto też odwiedzać dział SunDuino na mojej stronie gdzie też znajdziecie wiele przykładów, których tutaj nie opisywałem i nie pokazywałem.