Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 14 lis 2024, o 04:28


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 16 cze 2013, o 12:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8585
Pomógł: 337

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:

Obrazek

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

Obrazek

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 :)


Obrazek

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.

Składnia: [ Pobierz ] [ Ukryj ]
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ą :)

Obrazek

Nasz program zaś następująco:

Obrazek

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

Obrazek

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:


Obrazek



Ćwiczenie 5: Użycie przetwornika analogowo-cyfrowego ADC

W 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 :)

Obrazek

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

Składnia: [ Pobierz ] [ Ukryj ]
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.

Obrazek

Schemat jest następujący:

Obrazek


Poniżej przykładowy program sterujący silnikami:

Składnia: [ Pobierz ] [ Ukryj ]
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 LM32

To 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:

Obrazek

A oto program:

Obrazek


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.

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 cze 2013, o 12:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lip 2012
Posty: 203
Lokalizacja: Sosnowiec
Pomógł: 2

Ładnie SUN :)

Tylko zmień L na D w "L293N" ;)

_________________
sig on ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO