資料介紹
描述
介紹
通過反射檢測物體的功能有多種應用,主要是在自動化領域,例如遠程控制命令。
通過可以檢測物體存在的傳感器輔助自動化,可以通過數字打印、燈的自動激活、可以根據不同表面反射到達的光的方式分配不同功能的系統來開發系統。 .
因此,這些應用之一存在于物體檢測中,例如在使用 TCRT5000 傳感器和 LCD 顯示器的教學保險箱中,如下圖 1 所示。
為了開發這個保險箱的教學案例,您將學習使用 Arduino 組裝基本電路和編程。
實施的教學保險箱結構簡單,包含 LCD(液晶顯示器)顯示器、TCRT5000 反射式物體傳感器和按鈕。
當硬幣通過特定孔插入保險箱時,傳感器會檢測到它的存在并使用開發程序中的內部條件計算硬幣的總量。
硬幣的檢測是由反射傳感器TCRT5000進行的,它使用LED發光,當光被反射時光電晶體管被激活,從而進行計數。
在本文中,您將學習如何編程和使用 TCRT5000 反射式傳感器,以及了解其物理結構,因為該傳感器使用反射作為工作原理。
因此,通過本文,您將了解到:
- 了解帶晶體管輸出的 TCRT5000 反射式光學傳感器的結構;
- 了解帶晶體管輸出的 TCRT5000 反射式光學傳感器的操作;
- 在具有晶體管輸出的 TCRT5000 反射式光學傳感器和 Arduino UNO R3 之間執行通信;
- 將帶晶體管輸出的 TCRT5000 反射式光學傳感器的結構展示給 SILICIOS LAB 開發的教學案例。
- 為錢柜構建您的 PCBGOGO 印刷電路板。
現在,我們將開始全面介紹使用 LCD 和 TCRT5000 反射式傳感器的教學安全的開發。
項目開發方法論
該項目包括展示一個使用 TCRT5000 反射式光學傳感器和 Arduino UNO 開發板的保險箱教學模型。
該項目由光學傳感器組成,負責通過發射紅外光來檢測物體的存在,并在檢測到物體反射的光時激活光電晶體管。
Arduino UNO開發板將負責接收傳感器發送的邏輯電平并提供電源使傳感器工作,最后處理傳感器接收到的信號。如圖 2 所示。
反射式傳感器的紅外光LED發出的信號發射出去,這樣光就檢測到硬幣了,很快,光在幾個方向上反射,一部分被反射式傳感器的光電晶體管捕捉到如圖 3 所示。
TCRT5000反射式傳感器基本由一個紅外發光LED、負責進行光切換的光電晶體管和用于耦合上述兩個器件的結構構成。
紅外 LED 向多個方向發射光,當光照射到硬幣表面時,它反射光,光電晶體管捕獲光。
通過這種方式,傳感器向 Arduino 的數字引腳發送一個低邏輯電平,另一方面,當傳感器沒有檢測到任何物體時,它發送一個高邏輯電平。
教學保險箱的所有通信都將通過液晶顯示屏完成,液晶顯示屏將向用戶發送指示性消息。
按鈕將用于向 Arduino 的數字引腳 7 發送低邏輯電平,從而完成程序中實現的硬幣計數器的歸零。
為此,將使用一個 10 kΩ 的上拉電阻來確保引腳具有高邏輯電平,使其在激活按鈕時達到低邏輯電平,從而避免溢出。
要設置實驗,首先,確保您的 Arduino 已通過從 USB 電纜上斷開來關閉。
現在,將組件連接起來,如下圖 5 所示。
根據圖5所示的接線圖,實驗由反射式傳感器電路、Arduino UNO電路、Push Button電路和LCD顯示電路組成。
TCRT5000 傳感器有 4 個引腳(兩個引腳用于 LED,兩個用于光電晶體管),有兩個電源引腳 (Vdc),光電晶體管的電源引腳連接到 10kΩ 電阻器,該電阻器將連接到 Arduino 的 5 伏Uno 通過原型板,它還將連接到 Arduino 的數字引腳 6 以發送信號,同時為 LED 供電的引腳將連接到 220 Ω 電阻器,該電阻器將連接到 5 伏總線原型板。
剩下的兩個引腳,LED 和光電晶體管都將連接到原型板的參考總線,原型板將連接到 arduino 的 GND 引腳。
Arduino uno 將負責對整個電路的信號進行處理,并提供電源和參考。使用的按鈕將連接到參考和上拉電阻,以確保只要未按下按鈕,arduino 的數字引腳 6 上的邏輯電平就很高。
LCD 顯示電路將是標準的使用 4 位連接(D4、D5、D6 和 D7)以及負責對比度的 10 kΩ 電位器和連接到陽極引腳的 330 Ω 電阻器。
教學保險箱的所有編程邏輯都是按照以下程序的注釋開發的:
/*
Conex?es do display LCD ao arduino uno:
* LCD RS pino para o digital pino 12
* LCD Enable pin para o digital pino 11
* LCD D4 pino para o digital pino 5
* LCD D5 pino para o digital pino 4
* LCD D6 pino para o digital pino 3
* LCD D7 pino para o digital pino 2
* LCD R/W pino para o ground
* LCD VSS pino para o ground
* LCD VDD pino para o 5V
* LCD V0 pino para o potenci?metro
*/
#include //importando a biblioteca das fun?oes do LCD
//pinos de interface da biblioteca
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//********************INICIO-SENSOR TCRT5000***********************
int Objeto = 0;//variável utilizada para as informa??es do sensor
int Sensor = 6;// o pino de dados do sensor será conectado ao pino digital 6 do arduino
int moedas = 0;//variavel responsavel por contar as moedas
int botao_zerar_contagem = 7;//variavel responsável pelo botao que ira reiniciar a contagem das moedas.
int estado_botao;//variável utilizada para verificar o estada do bot?o.
//********************FIM-SENSOR TCRT5000***********************
void setup() { //fun??o responsável por definir os pinos de entrada e saida do arduino
//********************INICIO-SENSOR TCRT5000***********************
pinMode(Sensor,INPUT);//define o pino Sensor como entrada de dados
pinMode(botao_zerar_contagem,INPUT);//define o pino do botao como entrada de dados
//********************FIM-SENSOR TCRT5000***********************
// Número de linhas e colunas do LCD utilizado
lcd.begin(16, 2);
// Fun??o responsável por retornar a mensagem no LCD
lcd.setCursor(2,0);//setando o cursor do LCD na coluna 2 linha 0
lcd.print("SILICIOS LAB");//mensagem enviada para o LCD
lcd.setCursor(2,1);//setando o cursor do LCD na coluna 2 linha 1
lcd.print("Cofre 1 real");//mensagem enviada para o LCD
delay(4000);//aguarda 4 segundos para iniciar
lcd.clear();//apaga os caracteres no LCD
}
void loop() {
estado_botao = digitalRead(botao_zerar_contagem);//lendo o estado do bot?o.
if(estado_botao==LOW)//se o estada do bot?o for LOW, a contagem será reiniciada
{
lcd.setCursor(0,0);//desloca o cursor para a posi??o específica do texto da contagem
lcd.clear();//limpa a contagem anterior
moedas=0;//zera a contagem das moedas e reinicia a contagem.
}
else//se o estado do bot?o for contrário a LOW, ou seja, HIGH, o programa ira continuar o seu fluxo normalmente
{
}
Objeto = digitalRead(Sensor);//analise o sinal enviado pelo pino de dados do sensor
if(Objeto==0)//caso o sinal do sensor seja nível lógico 0, o sensor terá detectado um objeto
{
Serial.println("Moeda Recebida");//mensagem no monitor Serial
// inicia o curso do LCD na coluna 0, linha 1
lcd.clear();//apaga os caracteres no LCD
lcd.setCursor(0, 1);//setando o cursor do LCD na coluna 0 linha 1
// print the number of seconds since reset:
lcd.print("Moeda Recebida");
moedas=moedas+1;//a cada passagem por esta linha, o contador é incrementado com o valor 1.
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 0
// print the number of seconds since reset:
lcd.print("Moedas = ");//mensagem enviada para o LCD
lcd.print(moedas);//mostra o valor da variável "moedas" no LCD
int aux=Objeto;//variável utilizada para armazenar a leitura atual do sensor
while(aux==LOW){//loop responsável por impedir o sensor de conte mais de uma vez a moeda enquanto ela está sendo colocada no cofre.
moedas=moedas;//enquanto o loop durar, o valor da variável será o mesmo.
lcd.setCursor(0,0);
lcd.print("Moedas = ");
lcd.print(moedas);
aux=digitalRead(Sensor);
}
}
else //caso o valor seja nível lógico 1, o sensor n?o estará detectando a presen?a de nenhum objeto
{
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 1
lcd.clear();
// print the number of seconds since reset:
lcd.print("Moedas = ");
lcd.print(moedas);
Serial.println("Objeto nao detectado");
// inicia o curso do LCD na coluna 0, linha 1
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print("Esperando Moedas");
}
if(botao_zerar_contagem==0)
{
lcd.setCursor(0,0);//desloca o cursor para a posi??o específica do texto da contagem
lcd.clear();//limpa a contagem anterior
moedas=0;//zera a contagem das moedas e reinicia a contagem.
moedas=0;
}
}
對于這個項目,開發了一個合適的案例,它將接收 TCRT5000 反射式光學傳感器、LCD 顯示器和按鈕,只留下 Arduino Uno 引腳連接,以便可以以教學方式使用,如圖所示在圖 6 中。
從電路的組裝和 Arduino Uno 的編程來看,可以將 LCD 顯示器固定在教學箱的前面,也可以通過小支架將反射傳感器安裝在蓋子的上部區域。硬幣的入口。
按鈕固定在 LCD 下方,因此,在放置硬幣后,可以通過教學保險箱后面的小門將它們取出,如圖 7 所示。
與后部區域有一個用于從反射傳感器引出電線的孔相同的方式,側面區域也有一個用于從 LCD 顯示器和按鈕引出電線的孔。
教學保險箱的說明性圖像有一些透明區域,以便更好地了解箱子的內部結構。
接下來,我們將展示用于現金保險箱的PCBGOGO 印刷電路板。
PCBGOGO印刷電路板
印刷電路板的開發是為了控制現金保險箱的設計。下圖以 3D 形式顯示了印刷電路板。
此PCBGOGO 印刷電路板是通過以下電子原理圖開發的。
您可以下載印刷電路板文件并在 PCBGOGO 使用此鏈接中的 50 美元折扣券購買。
結論
因此,通過本項目的開發,除了通過開發的程序分析與Arduino Uno的通信外,還可以了解具有晶體管輸出的TCRT5000反射式光學傳感器的結構并了解其操作。
由于傳感器通過 LED 發射紅外光,然后反射光激活光電晶體管,因此分析對象(在本例中為 1 枚真幣)必須位于距離物體 5 毫米至 10 毫米的位置。傳感器,為了保證它的檢測,并以這種方式,教學保險箱的主要組件適應了教學案例。
致謝
感謝PCBGOGO 印刷電路板對本項目開發的支持。
我們還要感謝巴西的Rob? Lúdico學校。
- 使用Android和Arduino創建物聯網
- 創建Arduino字時鐘
- LCD電子密碼保險箱設計 3次下載
- 基于Arduino并由紙板制成的保險箱
- 如何使用Android和Arduino創建物聯網
- 使用Arduino創建庫
- Arduino RFID伺服箱
- 使用C51單片機和Proteus仿真設計密碼保險箱的應用實例資料免費下載 3次下載
- Arduino板是什么如何使用IDE軟件創建和上傳Arduino程序到Arduino板
- DIY機器人開二手保險箱 8次下載
- R7F0C004在LCD電子密碼保險箱的應用方法 13次下載
- 基于WiFi的51單片機雙層密碼保險箱的設計與實現_曾維鵬 6次下載
- PLC可編程控制器之狀態圖(保險箱) 2次下載
- IC 卡保險箱
- ISN-SM振動探測器使用指南
- 海凌科五款指紋模塊介紹 4525次閱讀
- 如何創建基于DCO的音頻合成器 814次閱讀
- 什么是電子保險絲 4727次閱讀
- 如何創建 Docker 鏡像的能力 1023次閱讀
- 如何從網頁控制arduino? 3836次閱讀
- 如何利用Arduino創建一個電機滑動門 1614次閱讀
- 利用樹莓派完成雙重身份驗證的保險箱 1403次閱讀
- 如何使用Arduino創建停車門禁控制系統? 5060次閱讀
- 科裕智能科技房門鎖918-K介紹 1120次閱讀
- 保險電阻怎么測好壞_保險電阻的功能 1w次閱讀
- 智能鑰匙開鎖的簡易保險箱設計 3099次閱讀
- 保險電阻和保險絲的區別 詳解保險電阻和保險絲的不同 2.3w次閱讀
- 簡單邏輯電路在生活中的應用 2.2w次閱讀
- arduino是什么以及arduino能干什么 4.4w次閱讀
- 配電箱與配電柜、控制箱的區別 7052次閱讀
下載排行
本周
- 1美的電磁爐維修手冊大全
- 1.56 MB | 5次下載 | 5 積分
- 2SMD LED選型手冊 貼片燈珠
- 5.47 MB | 3次下載 | 免費
- 3基于PLC的拉絲機張力控制系統研究
- 0.14 MB | 2次下載 | 5 積分
- 4LZC3106G高性能諧振控制器中文手冊
- 1.29 MB | 1次下載 | 1 積分
- 5JL2233B集成電平轉換功能的LDO中文手冊
- 0.50 MB | 1次下載 | 免費
- 6加密芯片的一種破解方法和對應加密方案改進設計
- 0.29 MB | 1次下載 | 免費
- 7萬用表UT58A原理圖
- 0.09 MB | 1次下載 | 5 積分
- 8BOSCH-REXROTH300擰緊系統常見故障及處理方法
- 0.06 MB | 次下載 | 5 積分
本月
- 1使用單片機實現七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 2UC3842/3/4/5電源管理芯片中文手冊
- 1.75 MB | 19次下載 | 免費
- 3華瑞昇CR216芯片數字萬用表規格書附原理圖及校正流程方法
- 0.74 MB | 14次下載 | 3 積分
- 4DMT0660數字萬用表產品說明書
- 0.70 MB | 13次下載 | 免費
- 53314A函數發生器維修手冊
- 16.30 MB | 13次下載 | 免費
- 6TPS54202H降壓轉換器評估模塊用戶指南
- 1.02MB | 8次下載 | 免費
- 7STM32F101x8/STM32F101xB手冊
- 1.69 MB | 8次下載 | 1 積分
- 8感應筆電路圖
- 0.06 MB | 7次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評論
查看更多