[arduino] 아두이노로 PWM 활용하여 리모콘으로 FND 제어

2019. 4. 14. 17:51학교 수업 정리/Micom

반응형

 

 

 

 

 

제일 먼저, fnd의 숫자 데이터맵과, 리모콘의 숫자 데이터맵을 선언해줍니다.

 

이 데이터맵은 모델마다 다르며 조금만 어긋날경우 출력이 안될수도 있으므로 항상 주의해야 합니다.

 

 

 

 

 

 

이 메서드는 fnd에 숫자를 띄워주는 역할을 하며 fnd는 값을 4개에 데이터를 마이크로초 단위로 꺼졌다 켜졌다해서 잔상으로 보여주는 형식이기 때문에 for문으로 1,2,3,4하나씩 켜주게 만듭니다.

 

인자값은 각각 1,2,3,4번째 값중 어디에 할지 결정하는 pos와 무슨 숫자를 넣을건지 결정하는 num으로 결정됩니다.

pos가 들어오면 pos이외의 다른칸은 띄우지 않으며 num값이 들어오면 num번째에 있는 fnd데이터 맵을 호출하여 그 값을 호출합니다.

 

 

 

 

다음 메서드는 리모콘에서 데이터를 받아오는 메서드입니다.

 

리모콘을 누르는 순간 34비트의 정보가 들어오게 됩니다. 앞의 파형에 따라 정보의 형태가 달라지게 되는데 13.5ms의 경우 한번 누르는 경우이기때문에 한번받고, 11.5의 경우 연속적으로 들어오는 경우이므로 카운트를 -1로 해줍니다.

33이상이면 데이터가 다 들어왔기 때문에 callback을 참으로 해줍니다. 그러면 위의 loop문에서 도는 코드가 작동하게 됩니다.

 

 

 

 

다음은 루프문 안에 있는 코드로 아까 밑의 콜백이 참일때 발동합니다.

 

간단히 설명하자면 받은 리모콘의 값을 fnd로 번역해서 내보내주는 역할을 합니다.

 

이 루프문은 리모콘의 33비트 데이터가 다들어왔을때만 작동하며, 바꿔주고 바로 콜백을 거짓으로 만들어 무한반복을 막아줍니다.

 

반응형