Научимся мигать светодиодом на нашем Raspberry Pi. Писать логику будем на языке Go.
Про установку Golang на Raspberry я писал в предыдущей статье
Установка зависимостей
Сразу перейдем в папку проекта, например, так:
mkdir -p ~/Documents/Go && cd ~/Documents/Go
Установим библиотеку для работы с портами GPIO в Raspberry:
go get github.com/stianeikeland/go-rpio/...
Если получаете ошибку no required module provides package github.com/stianeikeland/go-rpio: go.mod file not found in current directory or any parent directory; see 'go help modules', введите
go env -w GO111MODULE=auto
go get github.com/stianeikeland/go-rpio/...
Написание логики
В папке проекта создаем файл, например lights.go, в него сохраняем следующий код:
package main
import (
"fmt"
"github.com/stianeikeland/go-rpio"
"os"
"time"
)
func main() {
// Инициализируем библиотеку rpio
if err := rpio.Open(); err != nil {
fmt.Println(err)
os.Exit(1)
}
// Создаем переменную с привязкой к пину GPIO4
lightPin := rpio.Pin(4)
// Устанавливаем режим пина как Выход
lightPin.Output()
// Когда функция завершит свою работу, надо выключить светодиод и отключить библиотеку rpio
defer lightPin.Low()
defer rpio.Close()
// В бесконечном цикле начинаем управление
for {
// Выключаем светодиод
lightPin.Low()
// Ждем 1 секунду
time.Sleep(time.Second)
// Включаем светодиод
lightPin.High()
// Ждем 2 секунды
time.Sleep(time.Second * 2)
}
}
Подключение электронных компонентов
Нам понадобятся:
- Светодиод любого света
- Резистор 200-500 Ом
- Макетная плата
- Перемычки мама-папа 2 шт
Собираем схему:
Минус светодиода подключаем на землю (Ground вывод Raspberry). Плюс подключаем через резистор на ножку GPIO4.
Резистор в схеме обязателен, так как без него у вас сгорит как минимум светодиод, а максимум Raspberry. Сопротивление диода очень маленькое, поэтому без резистора мы получим короткое замыкание и большой ток.
Распиновку для своей модели Raspberry вы можете найти в интернете, распиновка светодиода видна на картинке выше (со стороны плюса внутри светодиода видно диагональный разрез пластины)
Запуск
Осталось запустить скрипт