【树莓派+arduino实验记录7 】光遮断器

2020-07-17  本文已影响0人  Geekero

Arduino

/***********************************/
const int photoPin =7;
const int ledPin = 13;
/***********************************/
void setup()
{
  pinMode(photoPin, INPUT);
  pinMode(ledPin, OUTPUT);
}
void loop()
{
  boolean Value=digitalRead(photoPin);
  //if it is,the state is HIGH
  if (Value == HIGH)
  {
    digitalWrite(ledPin, LOW); //turn on
  }
  else
  {
    digitalWrite(ledPin, HIGH); //turn off
  }
}

树莓派

C

#include <wiringPi.h>
#include <stdio.h>

#define LBPin  0 //light break pin set to GPIO0
#define Gpin  1
#define Rpin  2

void LED(int color)
{
    pinMode(Gpin, OUTPUT);
    pinMode(Rpin, OUTPUT);
    if (color == 0){
        digitalWrite(Rpin, HIGH);
        digitalWrite(Gpin, LOW);
    }
    else if (color == 1){
        digitalWrite(Rpin ,LOW);
        digitalWrite(Gpin, HIGH);
    }
}

void screen_print(int x){
    if (x == 0){
        printf("Light was blocked\n");
    }   
}

int main(void){
    if (wiringPiSetup() == -1){
        printf("setup wiringPi failed !");
        return 1;
    }

    pinMode(LBPin, INPUT);
    int temp;
    while(1){
        //Reverse the input of LBPin
        if ( digitalRead(LBPin) == 0 ){
            temp = 1;
        }
        if ( digitalRead(LBPin) == 1 ){
            temp = 0;
        }

        LED(temp);
        screen_print(temp);
    }
    return 0;
}

Python

#!/usr/bin/env python
import RPi.GPIO as GPIO

PIPin = 11
Gpin = 12
Rpin = 13

def setup():
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(Gpin, GPIO.OUT)
    GPIO.setup(Rpin, GPIO.OUT)
    GPIO.setup(PIPin, GPIO.IN, pull_up_down = GPIO.PUD_UP)   #pull up to high level (3.3V)
    GPIO.add_event_detect(PIPin, GPIO.BOTH, callback=detect, bouncetime=200)

def Led(x):
    if x == 0:
        GPIO.output(Rpin, 1)
        GPIO.output(Gpin, 0)

    if x == 1:
        GPIO.output(Rpin, 0)
        GPIO.output(Gpin, 1)

def screen_print(x):
    if x == 1:
        print('    **********************')
        print('    *  Light was blocked *')
        print('    **********************')

def detect(chn):
    Led(GPIO.input(PIPin))
    screen_print(GPIO.input(PIPin))

def loop():
    while True:
        pass

def destroy():
    GPIO.output(Gpin, GPIO.HIGH)
    GPIO.output(Rpin, GPIO.HIGH)
    GPIO.cleanup()


if __name__ == '__main__':
    setup()
    try:
        loop()
    except KeyboardInterrupt:
        destroy()
上一篇 下一篇

猜你喜欢

热点阅读