美文网首页
【树莓派+arduino实验记录7 】光遮断器

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

作者: Geekero | 来源:发表于2020-07-17 13:26 被阅读0次

    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()
    

    相关文章

      网友评论

          本文标题:【树莓派+arduino实验记录7 】光遮断器

          本文链接:https://www.haomeiwen.com/subject/wrvuhktx.html