반응형

【 라즈베리파이 】 #17 4LED 순차 점멸 with Timing chart

 지난시간 2개의 LED를 이용해서 타이밍 차트에 따라 반복 점멸을 하도록 만들어 보았다. 이번에는 4개의 LED이용할 것이며, 타이밍 차트 대로 순차로 점멸하되, 총 10회만 반복하도록 프로그래밍 해보자. 


▶ 선수 학습 :

 

  1. (기초#16State Diagram 구현 실습 (타이밍 차트 참고 강좌클릭


▶ 회로 구성 : 

( 이미지를 클릭하면 크게 확대 됩니다)



▶ 개요 

  GPIO의 출력을 순서대로 제어 해보는 실습으로,  파이썬의 while 구문을 함께 연습해 볼 수 있다.  아래 이미지는 스테이트 다이어그램(State Diagram)으로 동작의 순서를 도식화 해서 이를 다시 프로그래밍으로 구현해 보는 연습을 통해 정확한 동작의 구현을 기대할 수 있다. 



(아래 이미지를 클릭해서 보면 눈금등을 더 선명하게 보실 수 있어요) 



▶ 실습절차 

 저항과 LED를 준비하고 위 회로도와 같이 연결한다. 
(저항은 LED가 보호되면서 적당량의 밝기를 가질 수 있도록 용량값을 선택하는데, 통상적으로 100
Ω~470Ω 사이값으로 준비하면 실험을 위한 짧은 실습에는 크게 문제가 없다)

  

- LED1 → GPIO 18번 핀 연결  / LED2 → GPIO 23번 핀 연결

- LED3 → GPIO 24번 핀 연결  / LED4 → GPIO 25번 핀 연결

(LED 극성에 주의 : 리드선이 긴 쪽이 '+'  ,  짧은 쪽이 '-' 이다)


1. 부품 : 220Ω x 4 ,  LED x 4




▶ 파이썬 코드 


라즈베리파이에서 파이선을 실행시킨다. 

메뉴에서 새파일을 선택하고 아래와 같이 작성 저장후 실행시킨다.(F5)




▶ 코드설명 

4개의 LED가 순차적으로 반복 실행

-타이밍 차트에서 한 눈금당 0.2초 씩 계산함.
-L1High 신호 : 0.8초 동안 On
-L2High 신호 : L1신호 시작부터 0.4Delay 0.8초 동안 On
-L3High 신호 : L2신호 시작부터 0.4Delay 0.8초 동안 On
-L4High 신호 : L3신호 시작부터 0.4Delay 0.8초 동안 On
-L1High 신호 : L4신호 종료부터 1.2Delay 0.8초 동안 On

-이후 반복   (10회 반복)


-위 타이밍 차트를 분석해보면 패턴 L L L L의 패턴이 순서 대로 이어지고 있고, L4가 Off 된 이후 12개의 눈금(각0.2초 총 1.2초)

이후 다시 첫 L1으로 반복되는 것을 알 수 있다.  


- 총 10회를 반복하도록 while 구문에 조건을 주어야 한다. 

- ' no += 0.1 ' 은   'no = no + 0.1' 과 동일한 코드이다.

- State_1(0.4)  :  State_1() 함수를 호출하면서 delay 타임을 위한 인자값으로 0.4(초)를 전달하고 있다.   [ State_1(0.4)  ]



▶ 실행 결과 

( 영상을 전체보기로 크게 하여 보세요)



ED On Off 실습 with Python

반응형
반응형

【 라즈베리파이 】 #15 LED SOS 신호와 동기신호 실습


▶ 회로 구성 : 


▶ 개요 


LED1으로 SOS 신호를 나타 내고 LED2로 동기신호(일정한 크기와 간격의 기준 신호)를 출력해 보는 실습이다. 

( 이전글 참조  :  #14 타이밍 차트 활용한 LED 실습 )


▶ 실습절차 

저항과 LED, 준비하고 위 도면과 같이 연결한다.  

(LED1 → GPIO 18번 핀 연결  / LED2 → GPIO 23번 핀 연결)

(LED 극성에 주의 : 리드선이 긴 쪽이 '+'  ,  짧은 쪽이 '-' 이다)

1. 부품 : 220Ω x 2 ,  LED x 2



▶ 파이썬 코드 

명령창에 한 줄씩 바로 입력 하지말고 저장파일을 만들어 아래와 같이 작성후 실행 시킨다.




▶ 코드설명 

【 SOS 신호 타이밍 차트

-위 타이밍 차트에서 한 눈금당 0.2초 씩 계산함.


-S’ 신호 : 0.4On 0.4Off 0.4On 0.4Off0.4On (1.2Off :다음신호 사이의 공백 값)
-O’ 신호 1.2On 0.4Off 1.2On 0.4Off1.2On (1.2Off :다음신호 사이의 공백 값)

-LedOnLedOff 함수 , S, O, 모르스 신호 함수를 선언(def한다

-Led1(SOS 신호용)은 18번 포트를 사용하고, Led2(동기신호)는 23번 포트를 사용한다.
-반복패턴 a, b, c 세가지를 함수로 만들어 정의 한다.
-Led1, Led2 는 패턴에 따라 On(True), Off(False) 의 포트 출력을 설정한다(IoPort.output…)
-Port1 Led1(18번 포트)
-Port2 Led2(Clk, 23번 포트)
-S, O, 신호를 각각 함수로 정의 하되 이미 정의한 패턴 a,b,c 함수를 사용하여 간결화 시킨다
-타이밍 차트와 동일한 출력이 되도록 중간 중간에 패턴 a가 포함되어있음에 유의

【 SOS 신호와 동기신호 타이밍 차트


- 두 개의 신호상에서 반복되는 패턴을 살펴보면 아래와 같은 (a), (b), (c) 세 가지 패턴이 계속 반복되는 것을 발견 할 수 있다.  패턴상에서 위에 부분은 High,  아래에 위치하는 부분은 Low 신호라고 하며, High 신호일 때 LED를 켜고(On), Low 신호일 때 LED를 끄면(Off) 된다.

- 따라서 ‘S 신호는 패턴 (c)가 세 반복: ccc , ‘O 신호는 패턴(b)(c) 가 세 번 반복 : bcbcbc, 되며, 아래와 같은 차트를 만들려면 SOS 신호 사이사이 (a)패턴을 삽입 하면 동일한 신호를 만들 수 있다. 





▶ 실행 결과 


아래 영상은 위 프로그램을 두 번 연속 실행 시킨 영상이다. 

 S.O.S + 동기 신호 






LED On Off 실습 with Python

반응형
반응형

【 라즈베리파이 】 #14 타이밍 차트 활용한 LED 실습

▶ 회로 구성 : 


▶ 개요 


LED의 On Off 제어를 타이밍 차트 (timing chart) 라고 하는 시간에 따른 High- Low 신호에 맞추어 제어 해보는 실습이다. 

모르스 부호 중에 SOS 위급신호를 응용하여 실험해 보도록 한다.


▶ 실습절차 

저항과 LED, 준비하고 위 도면과 같이 연결한다.  (GPIO 18번핀 LED 연결)

1. 부품 : 220Ω x 1 ,  LED x 1



▶ 파이썬 코드 

명령창에 한 줄씩 바로 입력 하지말고 저장파일을 만들어 아래와 같이 작성후 실행 시킨다.




▶ 코드설명 

【 SOS 모르스 신호 타이밍 차트


-모르스 부호의 SOS 신호를 LED를 통해서 나타내는 실험


-위 타이밍 차트에서 한 눈금당 0.2초 씩 계산함.

-S신호 : 0.4On 0.4Off 0.4On 0.4Off0.4On (1.2Off :다음신호 사이의 공백 값)
-O신호 : 1.2On 0.4Off 1.2On 0.4Off1.2On (1.2Off :다음신호 사이의 공백 값)

-LedOn, LedOff 함수 , S, O, 모르스 신호 함수를 선언(def) 한다

-Led 포트는 18번 포트를 사용


▶ 실행 결과 

아래 영상은 위 코드를 두 번 연속 실행 시킨 영상이다. 

 S.O.S , S.O.S





LED On Off 실습 with Python

반응형