Светли светодиод с GPIO на Raspberry Pi

По-рано тази година имахте обиколка на GPIO на Raspberry Pi и също така препоръчахте някои наистина полезни разделителни дъски за идентифициране на номера на щифтове. Днес ние продължаваме тази тема и започваме да използваме тези игли, комбинирани с код и хардуер.

В GPIO е как Raspberry Pi разговаря с външния свят - "истински неща" - използвайки код за програмиране на сигнали и напрежения към и от 40-пинов хедър.

Кодирането с GPIO е сравнително лесно, за да започнете, особено за начинаещи проекти като LED и буйове. Само с няколко компонента и няколко реда код можете да осветявате или да мигате LED като част от вашия проект.

Тази статия ще ви покаже какво ви е нужно, за да запалите LED, използвайки Python код на Вашата Raspberry Pi, използвайки традиционния метод "RPi.GPIO".

01 от 04

От какво имаш нужда

Само няколко прости и евтини части са необходими за този проект. Ричард Савил

Ето списък на всичко, от което се нуждаете за този малък стартов проект. Трябва да можете да намерите тези елементи в любимия си магазин за производители или онлайн сайтове за търгове.

02 от 04

Създайте схемата - стъпка 1

Свържете всеки щифт към решетката с връзки. Ричард Савил

Ще използваме 2 GPIO щифта за този проект, заземяващ щифт (физичен щифт 39) за земния крак на светодиода и генерален GPIO щифт (GPIO 21, физичен щифт 40) за захранване на светодиода - но само когато ние решаваме - накъде идва кодът.

Първо, изключете малините Pi. Сега, като използвате проводниците на джъмпера, свържете щифта за заземяване към лентата на вашия breadboard. След това направете същото за щифта GPIO, свързвайки се с друга лента.

03 от 04

Създайте схемата - стъпка 2

Светодиодът и резисторът завършват веригата. Ричард Савил

След това добавете светодиода и резистора към веригата.

Светодиодите имат полярност, което означава, че те трябва да бъдат свързани по определен начин. Обикновено те имат един по-дълъг крак, който е анодният (положителен) крак и обикновено е плосък край на LED пластичната глава, който обозначава катоден (отрицателен) крак.

Резистор се използва, за да предпази двата светодиода да приемат твърде много ток, а GPIO-щифтът от "даване" твърде много - което може да увреди и двете.

Има малко общо резистор за стандартните светодиоди - 330ohm. Има някои математически зад това, но засега нека се съсредоточим върху проекта - винаги можете да погледнете в ома право и свързаните с него теми след това.

Свържете единия крак на резистора към лентата GND на вашия breadboard, а другият крак на резистора към лентата, свързана с по-късия крак на вашия светодиод.

Дългият крак на светодиода сега трябва да се присъедини към лентата, свързана с GPIO-щифта.

04 от 04

Python GPIO кодекс (RPi.GPIO)

RPi.GPIO е отлична библиотека за използване на GPIO пина. Ричард Савил

В момента имаме схема, която е свързана и е готова да излезе, но все още не сме ви казали, че нашият GPIO щифт ще изпрати някакво захранване, така че не трябва да светва вашия светодиод.

Нека да направим Python файл, за да кажем на нашият GPIO щифт да изпрати малко захранване за 5 секунди и след това да спре. Най-новата версия на Raspbian ще има вече инсталирани библиотеки GPUS.

Отворете терминален прозорец и създайте нов Python скрипт, като въведете следната команда:

sudo nano led1.py

Това ще отвори празен файл, за да въведем нашия код. Въведете линиите по-долу:

#! / usr / bin / python # Импортиране на библиотеките, от които се нуждаем, за импортиране на RPi.GPIO като време за импортиране на GPIO # Задаване на GPIO режим GPIO.setmode (GPIO.BCM) # Задаване на LED GPIO номер LED = 21 # Изход GPIO.setup (LED, GPIO.OUT) # Завъртане GPIO щифт на GPIO.output (LED, True) # Изчакайте 5 секунди time.sleep (5) # Изключете GPIO pin от GPIO.output (LED,

Натиснете Ctrl + X, за да запазите файла. За да стартирате файла, въведете следната команда в терминала и натиснете enter:

sudo python led1.py

Светодиодът трябва да светне за 5 секунди, след това да се изключи, завършвайки програмата.

Защо не се опитате да промените номера "time.sleep", за да запалите LED за различно време или опитайте да промените "GPIO.output (LED, True)" на "GPIO.output (LED, False)" и да видим какво ще се случи?