Май
31
2021

Как мигать светодиодом на Raspberry с помощью Go

Научимся мигать светодиодом на нашем 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)
	}
}

Подключение электронных компонентов

Нам понадобятся:

  1. Светодиод любого света
  2. Резистор 200-500 Ом
  3. Макетная плата
  4. Перемычки мама-папа 2 шт

Собираем схему:

Минус светодиода подключаем на землю (Ground вывод Raspberry). Плюс подключаем через резистор на ножку GPIO4.

Резистор в схеме обязателен, так как без него у вас сгорит как минимум светодиод, а максимум Raspberry. Сопротивление диода очень маленькое, поэтому без резистора мы получим короткое замыкание и большой ток.

Распиновку для своей модели Raspberry вы можете найти в интернете, распиновка светодиода видна на картинке выше (со стороны плюса внутри светодиода видно диагональный разрез пластины)

Запуск

Осталось запустить скрипт

Пожалуйста, оцените на сколько вам понравилась статья!
Голосов: 2 Среднее: 5