raspberry pi 2用golang 控制GPIO

zhangzhihai · · 3380 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

/*
# Date:        2016-11-10
# Author:      simonzhang
# web:         www.simonzhang.net
# Email:       simon-zzm@163.com
*/
package main

import (
    "os"
    "github.com/stianeikeland/go-rpio"
    "time"
)

var (
    aio = rpio.Pin(14)
    fio = rpio.Pin(4)
    alertCount int = 0
)

// 风扇端口
func fWrite(status string){
    fio.Output()
    if status == "high"{
        fio.High()
    }else if status == "low"{
        fio.Low()
    }
}

// 监控端口
func aRead() int{
    aio.Input()
    return int(aio.Read())
}

func main() {
    err := rpio.Open()
    if err != nil {
        os.Exit(1)
    }
    defer rpio.Close()
    // 因为没有while 直接用for
    for {
        // 数字不能太大
        // 1是内存问题,2是停止风扇范围
        if aRead() == 1 {
            if alertCount > 0{
                alertCount -= 1
            }
        }else{
            if alertCount <= 10{
                alertCount += 1
            }
        }
        //print(alertCount, "   ", aRead(), "\n")
        //
        if alertCount > 3{
            fWrite("high")
        } else {
            fWrite("low")
        }
        // 每次次循环等待一秒钟
        time.Sleep(1000 * time.Millisecond)
    }
}


有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:zhangzhihai

查看原文:raspberry pi 2用golang 控制GPIO

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3380 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传