이 프로젝트에서는 컬러 센서와 Arduino를 사용하여 지폐를 감지하여 지폐를 세고 그 금액을 계산할 수있는 혁신적인 arduino 프로젝트 아이디어를 작업 할 것 입니다. TCS230 컬러 센서는 통화 메모를 감지하는 데 사용되며 Arduino UNO는 데이터를 처리하고 16x2 LCD에 남은 잔액을 표시하는 데 사용됩니다.
필수 구성 요소:
- Arduino UNO
- TCS230 컬러 센서
- IR 센서
- 브레드 보드
- 16 * 2 영숫자 LCD
- 전선 연결
TCS3200 컬러 센서 작동
TCS3200 컬러 센서는 다양한 색상을 감지하는 데 사용됩니다. 우리는 이전에 TCS3200 컬러 센서를 Arduino 및 Raspberry pi와 인터페이스했으며 컬러 정렬 기계와 같은 유용한 프로젝트도 구축했습니다.
TCS230 센서에는 색상을 감지 할 물체를 비추는 데 사용되는 적외선 LED가 내장되어 있습니다. 이렇게하면 외부 주변 광이 물체에 미치는 영향이 없습니다. 이 센서는 빨간색 필터 가있는 16 개의 포토 다이오드, 파란색 필터가있는 16 개, 녹색 필터가있는 16 개, 필터 가없는 16 개의 포토 다이오드로 구성된 8 * 8 어레이의 포토 다이오드를 읽습니다. 이 세 어레이의 각 센서 어레이는 요구 사항에 따라 개별적으로 선택됩니다. 따라서 프로그래밍 가능한 센서 로 알려져 있습니다. 모듈은 특정 색상을 감지하고 다른 색상을 남기는 기능을 제공 할 수 있습니다. 선택 목적을위한 필터가 포함되어 있습니다. 센서가 백색광을 감지하는 '필터 없음 모드' 라는 네 번째 모드가 있습니다.
TCS230 컬러 센서의 출력 신호는 듀티 사이클이 50 % 인 구형파이며 주파수는 선택한 필터의 광도에 비례합니다.
TCS3200 컬러 센서의 핀아웃:
VDD- 센서의 전압 공급 핀. 5V DC가 제공됩니다.
GND- 컬러 센서의 접지 참조 핀
S0, S1- 출력 주파수 스케일링 선택 입력
S2, S3- 포토 다이오드 유형 선택 입력
OUT- 컬러 센서의 출력 핀
OE- 출력 주파수를위한 활성화 핀
우리는 또한이 프로젝트에서 IR 센서를 사용했는데, 그 작동은 다음 링크에서 이해할 수 있습니다.
회로도
아래는 Arduino Money Counter의 회로도입니다.
여기에서는 카드 보드를 사용하여 POS 화폐 스와이 핑 머신과 같은 작은 구조를 만들었습니다. 이 구조에서 컬러 센서와 IR 센서는 아래 이미지와 같이 카드 보드로 고정됩니다.
여기에서 IR 센서는 슬롯 내부의 통화 존재를 감지하는 데 사용되며 메모가 있으면 컬러 센서가 메모의 색상을 감지하고 색상 값을 Arduino로 보냅니다. 그리고 Arduino는 메모의 색상을 기반으로 통화 가치를 추가로 계산합니다.
코드 설명
데모 비디오와 함께 완전한 코드가 기사 끝에 제공됩니다. 여기 전체 코드에 대한 단계별 설명이 아래에 나와 있습니다.
먼저 프로그램에 모든 라이브러리를 포함합니다. 여기서는 프로그램에 포함 할 LCD 라이브러리 만 필요합니다. 그런 다음 코드에 사용 된 모든 변수를 선언합니다.
#포함
설정 () 내 에서 LCD에 환영 메시지를 인쇄하고이 프로젝트에 사용 된 디지털 핀의 모든 데이터 방향을 정의합니다. 다음으로 컬러 센서의 출력 주파수 스케일링을 설정합니다. 제 경우에는 S0에 HIGH 펄스를, S1에 LOW 펄스를 주어 설정할 수있는 20 %로 설정합니다.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("스마트 지갑"); lcd.setCursor (0, 1); lcd.print ("회로 다이제스트"); 지연 (2000); lcd.clear (); pinMode (2, OUTPUT); // S0 pinMode (3, OUTPUT); // S1 pinMode (11, OUTPUT); // S2 pinMode (12, OUTPUT); // S3 pinMode (13, INPUT); // OUT digitalWrite (2, HIGH); digitalWrite (3, LOW); }
무한 루프 () 내 에서 센서의 모든 데이터 출력을 읽습니다. IR 센서의 출력은 A0 핀을 읽고 출력 색상 주파수는 빨간색 (), 파란색 () 및 녹색 ()으로 작성된 개별 함수를 호출하여 찾을 수 있습니다. 그런 다음 직렬 모니터에 모두 인쇄하십시오. 프로젝트에 새 통화를 추가해야 할 때 필요합니다.
int 센서 = digitalRead (A0); int red1 = red (); int blue1 = 파란색 (); int green1 = 녹색 (); Serial.println (red1); Serial.println (blue1); Serial.println (green1); Serial.println ("-----------------------------");
다음으로, 이전에 설정 한 기준 주파수로 컬러 센서의 출력 주파수를 확인하기위한 모든 조건을 작성합니다. 일치하면 지갑 잔액에서 지정된 금액을 공제합니다.
if (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && 센서 == HIGH) {a = 1; } else if (센서 == 낮음 && a == 1) {a = 0; if (total> = 10) {lcd.setCursor (0, 1); lcd.print ("10 루피 !!!"); total = total-10; 지연 (1500); lcd.clear (); }}
여기에서는 10 루피와 50 루피 노트 색상에 대한 조건 만 설정했으며 더 많은 아니오를 감지하기 위해 더 많은 조건을 설정할 수 있습니다. 통화 메모.
참고: 외부 조명 및 센서 설정에 따라 사용자의 경우 주파수 출력이 다를 수 있습니다. 따라서 통화의 출력 빈도를 확인하고 그에 따라 기준 값을 설정하는 것이 좋습니다.
아래 코드는 16x2 LCD의 지갑에서 사용 가능한 잔액을 보여줍니다.
lcd.setCursor (0, 0); lcd.print ("총 잔액:"); lcd.setCursor (11, 0); lcd.print (전체); 지연 (1000);
다음 함수는 통화로 된 빨간색 콘텐츠의 출력 색상 빈도를 가져옵니다. 유사하게, 우리는 다른 함수를 작성하여 파란색과 녹색 내용에 대한 값을 얻을 수 있습니다.
int red () {digitalWrite (11, LOW); digitalWrite (12, LOW); 주파수 = pulseIn (OutPut, LOW); 반환 빈도; }
이것이 아두 이노 기반의 머니 카운터 를 몇 가지 구성 요소를 사용하여 쉽게 구축 할 수있는 방법 입니다. 이미지 처리와 카메라를 통합하여 이미지를 사용하여 통화를 감지함으로써 추가로 수정할 수 있습니다. 그렇게하면 더 정확하고 모든 통화를 감지 할 수 있습니다.