youjin.A 2016. 2. 8. 15:52

이번에는 라즈베리에서 아두이노로 데이터를 보내보겠습니다.

라즈베리에서 온 신호를 아두이노에서 나타내기 위해 LCD를 사용했습니다.

라즈베리에서 신호가 오면 "Raspberry pi"라고 뜨고 신호가 없으면 "xxxxxxxxxxxx"라고 뜸니다.

 

 

 

 

1. 라즈베리 코드

import serial
import time

port = "/dev/ttyACM0"
serialToArduino = serial.Serial(port, 9600)

while True:
   serialToArduino.writelines("Raspberry pi")
   time.sleep(.5)

 

 

2. 아두이노 코드

#include <LiquidCrystal.h> //data that recieveed from RPi is represent on LCD attached on the arduino.

const int num_of_field = 12;
char value[num_of_field];

LiquidCrystal lcd(12, 11, 5,4, 3, 2);

void setup()
{
  Serial.begin(9600);
  lcd.begin(16,2);
}

void loop()
{
  if(Serial.available())
 //recieve date from RPi
  {
    delay(20); //for exact save
    for(int i = 0; i<num_of_field; i++)
       {value[i] = Serial.read();}
 //str storage
    print_on_LCD(); 
    delay(500);
 //depend eye effect, if this no, the data isn't seen due to so fast.
  }
  else
   { 
   for(int i = 0; i<num_of_field; i++)
      {value[i] = 'x';} //sign no data come
   print_on_LCD();}
}

void print_on_LCD()
{
 for(int i = 0; i<num_of_field; i++)
     { lcd.setCursor(i, 0);
       lcd.print(value[i]);}
}

 

 

3. 라즈베리 파이썬 파일 실행

LXTerminal창 켜고

cd ~ 저장해놓은 디렉터리 주소

sudo python 저장해놓은 파일이름.py

 

 

참고

http://blog.oscarliang.net/raspberry-pi-and-arduino-connected-serial-gpio/