Lekcja 07: Uzyskiwanie dodatkowych 5V i GND z Arduino | Kurs Arduino Krok po Kroku
W tej lekcji z kursu Robojax Arduino Krok po Kroku przyjrzymy się praktycznemu rozwiązaniu częstego problemu: brakowi połączeń 5V i GND na płytce Arduino. Niezależnie od tego, czy budujesz projekt wymagający zasilania serwomechanizmu, wyświetlacza LCD, czujnika ultradźwiękowego czy kombinacji urządzeń, ograniczona liczba pinów zasilania w Arduino Uno lub Nano może szybko stać się wąskim gardłem. Ten przewodnik pokazuje, jak kreatywnie wykorzystać dowolny cyfrowy pin I/O jako dodatkowe źródło 5V lub jako połączenie masy, dając Ci elastyczność w zasilaniu wielu komponentów bez konieczności stosowania zewnętrznego zasilacza dla urządzeń o niskim poborze prądu.
Ta technika jest szczególnie przydatna w kilku rzeczywistych zastosowaniach, w tym:
- Zasilanie małego wyświetlacza OLED lub LCD wraz z serwomechanizmem w jednym projekcie.
- Jednoczesne zasilanie wielu czujników, takich jak czujnik ultradźwiękowy i czujnik ruchu PIR.
- Tworzenie tymczasowych konfiguracji testowych na płytce stykowej, gdy potrzebujesz szybkiego i łatwego źródła zasilania dla nowego modułu.
- Sterowanie diodami LED o niskiej mocy lub układami logicznymi wymagającymi czystego odniesienia 5V.
Zrozumienie ograniczeń zasilania Arduino
Zanim przejdziemy do rozwiązania, kluczowe jest zrozumienie architektury zasilania Twojej płytki Arduino. W standardowym Arduino Uno zazwyczaj masz jeden dedykowany pin 5V. Niektóre płytki innych producentów, jak zauważono w filmie, mogą mieć drugi pin 5V, ale nawet wtedy możesz potrzebować więcej (w filmie o 00:26).
Ilość prądu, jaką możesz pobrać z tych pinów, zależy od źródła zasilania. Jeśli zasilasz płytkę przez USB, prąd jest ograniczony przez port USB lub ładowarkę, której używasz—na przykład ładowarka 1A pozwoli na pobór do 1A, podczas gdy ładowarka 2,4A pozwoli na więcej (w filmie o 01:55). Jeśli używasz gniazda barrel jack z zasilaczem 7-12V, prąd jest regulowany przez wbudowany układ stabilizatora napięcia AMS1117, który ma typowy limit prądu 1,1A (w filmie o 02:20).
Ważne jest również zwrócenie uwagi na złącze ICSP na płytce. Jak wyjaśniono w filmie, to złącze zapewnia dostęp do pinów SPI (Serial Peripheral Interface), a pin po prawej stronie to faktycznie VCC (5V), podczas gdy ostatni pin to GND (w filmie o 00:54). Daje Ci to kolejne fizyczne miejsce do podłączenia się do szyny 5V.
Jednak najbardziej krytycznym ograniczeniem, o którym należy pamiętać, są cyfrowe piny I/O. Zgodnie z oficjalną dokumentacją Arduino, każdy pin cyfrowy może dostarczać lub pobierać maksymalnie 20 miliamperów (mA) (w filmie o 03:30). To więcej niż wystarczająco dla diod LED, układów logicznych i wielu czujników, ale niewystarczające dla urządzeń o wysokim poborze prądu, takich jak silniki lub serwomechanizmy o dużej mocy. Dla nich zawsze należy używać głównego pinu 5V lub zewnętrznego źródła zasilania.
Sprzęt i komponenty
Do tej demonstracji będziesz potrzebować następujących komponentów:
- 1x płytka Arduino (Uno, Nano lub podobna)
- 1x dioda LED (dowolny kolor)
- 1x rezystor 1kΩ
- 1x płytka stykowa
- Przewody połączeniowe
- (Opcjonalnie) Wyświetlacz LCD 1602 lub moduł przekaźnika do demonstracji
Schemat połączeń
Okablowanie tego projektu jest proste, ponieważ głównie polega na podłączeniu pinu cyfrowego do szyny zasilania komponentu i innego pinu cyfrowego do jego masy. W filmie instruktor demonstruje to, zasilając diodę LED.
Oto jak to skonfigurować:
- Podłącz diodę LED: Podłącz anodę (dłuższą nóżkę) diody LED do pinu cyfrowego 5 na Arduino przez rezystor ograniczający prąd 1kΩ.
- Podłącz masę: Podłącz katodę (krótszą nóżkę) diody LED bezpośrednio do pinu cyfrowego 2 na Arduino.
Ten prosty obwód pozwala pinowi 5 działać jako źródło 5V, a pinowi 2 jako masa, zamykając obwód (w filmie o 06:05).
Dla bardziej skalowalnego podejścia możesz użyć płytki stykowej do rozprowadzenia zasilania, jak pokazano w filmie. Podłączając czerwoną szynę zasilania płytki stykowej do pinu 5 i niebieską/czarną szynę masy do pinu 2, możesz łatwo zasilać wiele komponentów, podłączając je do odpowiednich szyn (w filmie o 06:59).
Wyjaśnienie kodu
Kod dostarczony do tej lekcji jest wyjątkowo prosty, ponieważ jego jedynym celem jest skonfigurowanie dwóch pinów cyfrowych do działania jako piny zasilania. Klucz do tej funkcjonalności leży w dwóch stałych konfiguracyjnych zdefiniowanych na początku szkicu.
Oto konfigurowalna przez użytkownika część kodu:
#define VCC2 5 // zdefiniuj pin 5 lub dowolny inny pin cyfrowy tutaj jako VCC2
#define GND2 2 // zdefiniuj pin 2 lub dowolny inny pin cyfrowy jako Ground 2
Te dwie linie są sednem personalizacji. Dyrektywa #define to polecenie preprocesora, które mówi kompilatorowi Arduino, aby zastąpił każde wystąpienie VCC2 liczbą 5, a każde wystąpienie GND2 liczbą 2 przed skompilowaniem kodu. To sprawia, że zmiana pinów używanych do zasilania jest niezwykle łatwa. Jeśli chcesz użyć pinu 8 jako źródła 5V, po prostu zmień 5 na 8 w pierwszej linii. Podobnie możesz zmienić pin masy, edytując drugą linię.
Reszta kodu to tylko logika inicjalizacji w funkcji setup(). Ustawia pin zdefiniowany jako VCC2 jako OUTPUT, a następnie zapisuje na nim HIGH, co daje napięcie 5V. Odwrotnie, ustawia pin zdefiniowany jako GND2 jako OUTPUT i zapisuje na nim LOW, co sprawia, że działa on jak połączenie z masą. Po wykonaniu tego w setup(), piny utrzymają swoje stany przez cały czas zasilania Arduino, a Ty możesz dodać swoją główną logikę programu do funkcji loop().
Demonstracja projektu na żywo
Na filmie instruktor demonstruje tę koncepcję, wgrywając kod na Arduino. Po wgraniu dioda LED podłączona między pinem 5 a pinem 2 natychmiast się zapala, co dowodzi, że pin 5 dostarcza napięcie, a pin 2 odprowadza prąd jako masa. Aby dodatkowo to zilustrować, pokazuje, że przeniesienie zasilania diody na inny, nieskonfigurowany pin cyfrowy powoduje, że dioda się nie zapala, ponieważ ten pin nie jest ustawiony na wyjście 5V (na filmie o 06:37).
Demonstracja obejmuje również praktyczny przykład z użyciem płytki stykowej. Podłączając pin 5V do szyny zasilania płytki stykowej, a pin masy do szyny masy, zasila jednocześnie wyświetlacz LCD 1602 i moduł przekaźnika. To pokazuje, jak można użyć tej techniki do stworzenia małej, dedykowanej magistrali zasilania dla komponentów o niskim poborze prądu, utrzymując okablowanie w czystości i porządku (na filmie o 06:59).
Podsumowanie
Ta lekcja przedstawia prosty, ale potężny trik, który pozwala rozszerzyć możliwości Twojej płytki Arduino. Poprzez przedefiniowanie pinów cyfrowych jako źródeł zasilania możesz rozwiązać częsty problem ograniczonej liczby połączeń 5V i GND. Pamiętaj o krytycznym limicie 20mA na pin, a będziesz mógł bezpiecznie zasilać różne czujniki i małe moduły w swoich przyszłych projektach.
Rozdziały
- [00:00] Wprowadzenie i przegląd pinów 5V
- [00:54] Zrozumienie złącza ICSP i pinów SPI
- [01:55] Ograniczenia prądowe w zależności od źródła zasilania
- [03:30] Limity prądowe pinów cyfrowych i przypadki użycia
- [04:51] Wyjaśnienie kodu do tworzenia dodatkowych 5V i GND
- [06:05] Demonstracja podłączenia z diodą LED
- [06:59] Skalowanie z dystrybucją zasilania na płytce stykowej
/*
* S01-07 Additional 5V or GND pin.
If your Arduino board voltage is 3.3V, then we will get 3.3V and GND pin
* Arduino Sketch to give you extra 5V pin from Arduino
Please watch video instruction here https://youtu.be/pQKrl5Kpi50
This code is available at http://robojax.com/course1/?vid=lecture07
with over 100 lectures Free On YouTube. Watch it here http://robojax.com/L/?id=338
Get the code for the course: http://robojax.com/L/?id=339
* Written by Ahmad Shamshiri for Robojax, robojax.com http://youtube.com/robojaxTV
* on Jan 01, 2019 at 08:54 in Ajax, Ontario, Canada
*
*/
#define VCC2 5 // define pin 5 or any other digital pin here as VCC2
#define GND2 2 // define pin 2 or any other digital pin as Ground 2
void setup() {
pinMode(VCC2,OUTPUT);//define a digital pin as output
digitalWrite(VCC2, HIGH);// set the above pin as HIGH so it acts as 5V
pinMode(GND2,OUTPUT);//define a digital pin as output
digitalWrite(GND2, LOW);// set the above pin as LOW so it acts as Ground
}
void loop() {
//Robojax Step By Step Arduino Course http://robojax.com/L/?id=338
}
Zasoby i odniesienia
-
Zewnętrzny
-
Zewnętrzny
-
Zewnętrzny
-
Wewnętrzny
Pliki📁
Brak dostępnych plików.