0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

構(gòu)建一個基于Arduino的貨幣計數(shù)器

科技觀察員 ? 來源:circuitdigest ? 作者:Debasis Parida ? 2022-08-22 15:51 ? 次閱讀

在這個項目中,我們將研究一個創(chuàng)新的Arduino項目創(chuàng)意,在這里我們可以通過使用顏色傳感器和Arduino感知紙幣來計算紙幣筆記并計算其數(shù)量。TCS230顏色傳感器將用于檢測貨幣音符,并將Arduino Uno用于處理數(shù)據(jù)并顯示16x2 LCD上的剩余余額。

所需組件:

Arduino UNO

TCS230顏色傳感器

紅外傳感器

面包板

16*2 字母數(shù)字液晶屏

連接電線

TCS3200 顏色傳感器工作

pYYBAGMDNNKAEkr2AAOYYl1tvgA110.png

TCS3200顏色傳感器用于感知各種顏色。我們以前將TCS3200顏色傳感器與Arduino和Raspberry Pi聯(lián)系起來,還構(gòu)建了一些有用的項目,例如顏色分類機。

TCS230傳感器具有內(nèi)置的紅外LED,用于點亮要檢測到的顏色的物體。這樣可以確保外部光不會對物體產(chǎn)生影響。該傳感器讀取8*8陣列的光電二極管,該光電二極管由16個帶有紅色過濾器的光二極管,帶有藍色過濾器的16個,帶有16個帶有綠色過濾器的光電二極管,沒有任何過濾器。根據(jù)要求,分別選擇了這三個陣列中的每個傳感器陣列。因此,它被稱為 可編程傳感器。該模塊可以以感知特定的顏色并留下其他模塊。它包含用于選擇目的的過濾器。有第四模式稱為“無濾波器模式” ,其中傳感器檢測到白光。

TCS230顏色傳感器的輸出信號是一個方波,其占空比為50%,其頻率與所選濾波器的光強度成正比。

poYBAGMDNM6AZ0DPAACAl9p-1TU707.png

TCS3200顏色傳感器的引腳:

pYYBAGMDNMqAACRlAADRpIDoD2M596.png

傳感器的VDD-電壓電源引腳。它提供了5V DC。

GND-顏色傳感器的地面參考引腳

S0,S1-輸出頻率縮放選擇輸入

S2,S3-照片二極管類型選擇輸入

顏色傳感器的輸出銷

OE-啟用PIN的輸出頻率

我們還在該項目中使用了紅外傳感器,該項目可以通過以下鏈接來理解其工作。

電路原理

以下是Arduino貨幣計數(shù)器的電路圖:

poYBAGMDNMaANiTLAAKKgoXyQ4s438.png

在這里,我制作了一個小型結(jié)構(gòu),例如使用卡板的POS貨幣刷卡機。在該結(jié)構(gòu)中,顏色傳感器和IR傳感器用紙板固定,如下圖所示。

poYBAGMDNMGASewPAAIaB7Bhl9A939.png

在這里,IR 傳感器用于感應插槽內(nèi)是否存在貨幣,如果有紙幣,則顏色傳感器將檢測紙幣的顏色并將顏色值發(fā)送到 Arduino。并且 Arduino 進一步根據(jù)紙幣的顏色計算貨幣價值。

代碼說明

在文章的末尾給出了完整的代碼以及演示視頻。在這里,下面給出了完整代碼的逐步說明。

首先,包括程序中的所有庫。在這里,我們只需要在程序中包含LCD庫即可。然后聲明代碼中使用的所有變量。

#include 
整數(shù)輸出 = 13;
unsigned int頻率= 0;
液晶液晶(4、6、7、8、9、10);
int blue1;
int red1;
int green1;
int a = 0,b = 0;
int total = 1000;

在setup() 中,在 LCD 上打印歡迎信息并定義此項目中使用的數(shù)字引腳的所有數(shù)據(jù)方向。接下來,設置顏色傳感器的輸出頻率縮放,在我的例子中,它設置為 20%,可以通過給 S0 給高脈沖和給 S1 給低脈沖來設置。

無效設置()
{
  序列號.開始(9600);
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print(“智能錢包”);
  lcd.setCursor(0, 1);
  lcd.print(“電路摘要”);
  延遲(2000);
  lcd.clear();
  pinmode(2,輸出); // S0
  pinmode(3,輸出); // S1
  Pinmode(11,輸出); // S2
  Pinmode(12,輸出); // S3
  pinmode(13,輸入); // out
  數(shù)字寫入(2,高);
  DigitalWrite(3,低);
}

在無限循環(huán)()內(nèi)部,讀取傳感器中的所有數(shù)據(jù)輸出。可以通過讀取A0引腳和輸出顏色頻率來找到IR傳感器的輸出,可以通過稱為Red(),blue()和green()的單個函數(shù)來找到。然后在串行顯示器上打印所有它們。當我們需要在項目中添加新貨幣時,這是需要的。

int傳感器= DigitalRead(A0);
  int red1 = red();
  int blue1 = blue();
  int green1 = green();
  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 && sensor == high)
  {
    a = 1;
  }
  否則if(傳感器==低&& a == 1)
  {
    a = 0;
    如果(總計>=10)
    {
    lcd.setCursor(0, 1);
    lcd.print(“ 10盧比?。?!”);
    總計=總數(shù)10;
    延遲(1500);
    lcd.clear();
    }
  }

在這里,我們只設置了10盧比和50盧比顏色的條件,您可以設置更多條件以檢測更多否。貨幣筆記。

pYYBAGMDNLiADhElAAPvNKQJ7j8958.png

注意:在您的情況下,頻率輸出可能會有所不同,具體取決于外部照明和傳感器設置。因此,建議檢查貨幣的輸出頻率并相應地設置參考值。

poYBAGMDNLWASfBYAAnVwJW8OkA452.png

以下代碼將顯示16x2 LCD錢包中的可用余額。

  lcd.setCursor(0, 0);
  lcd.print(“總BAL:”);
  lcd.setcursor(11,0);
  lcd.print(總計);
  延遲(1000);

以下功能將獲得貨幣中紅色內(nèi)容的輸出顏色頻率。同樣,我們可以編寫其他功能以獲得藍色和綠色內(nèi)容的價值。

int red()

{

  DigitalWrite(11,低);
  DigitalWrite(12,低);
  頻率=脈搏蛋白(輸出,低);
  返回頻率;
}

因此,這就是可以使用幾個組件輕松構(gòu)建基于Arduino的貨幣計數(shù)器的方式。

int輸出= 13;

unsigned int頻率= 0;

#include

LiquidCrystal LCD(4、6、7、8、9、10);

int blue1;

int red1;

int green1;


int a = 0,b = 0;

int total = 1000;

無效設置()

{

序列.開始(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,高);

DigitalWrite(3,低);

}


void loop()

{

int sensor = digitalread(a0);

int red1 = red();

int blue1 = blue();

int green1 = green();


serial.println(red1);

序列號.println(blue1);

serial.println(green1);

Serial.println("-----------------");



if(red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == high)

{

a = 1;

}

else if(sensor == low && a == 1)

{

a = 0;

if(total>=10)

{

lcd.setCursor(0, 1);

lcd.print("10 盧比?。?!");

總計=總計-10;

延遲(1500);

lcd.clear();

}

}

if (red1 >= 25 && red1 <= 30 &&

{

b = 1;

}

else if (sensor == LOW && b == 1)

{

b = 0;

if(total>=50)

{

lcd.setCursor(0, 1);

lcd.print("50 盧比?。。?);

總計=總50;

延遲(1500);

lcd.clear();

}

}

lcd.setCursor(0, 0);

lcd.print(“總BAL:”);

lcd.setcursor(11,0);

lcd.print(總計);

延遲(1000);

}


int red()

{

digitalWrite(11, LOW);

數(shù)字寫入(12,低);

頻率=脈沖輸入(輸出,低);

返回頻率;

}

int blue()

{

digitalWrite(11, HIGH);

數(shù)字寫入(12,高);

頻率=脈沖輸入(輸出,低);

返回頻率;

}

int green()

{

digitalWrite(11, LOW);

數(shù)字寫入(12,高);

頻率=脈沖輸入(輸出,低);

返回頻率;

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 計數(shù)器
    +關注

    關注

    32

    文章

    2248

    瀏覽量

    94187
  • 顏色傳感器
    +關注

    關注

    2

    文章

    88

    瀏覽量

    18156
  • Arduino
    +關注

    關注

    187

    文章

    6455

    瀏覽量

    186367
收藏 人收藏

    評論

    相關推薦

    構(gòu)建4位二進制計數(shù)器

    構(gòu)建4位二進制計數(shù)器,計數(shù)范圍從0到15(包括0和15),計數(shù)周期為16。同步復位輸入時,將
    的頭像 發(fā)表于 12-02 09:20 ?4536次閱讀

    如何構(gòu)建使用IR光束的對象計數(shù)器

    電路,計算有多少人走過扇門或對象通過
    的頭像 發(fā)表于 07-30 11:15 ?2084次閱讀

    使用紅外傳感構(gòu)建Arduino計數(shù)

    在這個項目中,我們正在使用紅外傳感構(gòu)建Arduino 計數(shù)機。這臺機器在紅外傳感
    的頭像 發(fā)表于 08-17 15:59 ?4206次閱讀
    使用紅外傳感<b class='flag-5'>器</b><b class='flag-5'>構(gòu)建</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>Arduino</b><b class='flag-5'>計數(shù)</b>機

    基于Arduino的RPM計數(shù)器 具有更快的新算法

    電子發(fā)燒友網(wǎng)站提供《基于Arduino的RPM計數(shù)器 具有更快的新算法.zip》資料免費下載
    發(fā)表于 11-15 11:33 ?0次下載
    基于<b class='flag-5'>Arduino</b>的RPM<b class='flag-5'>計數(shù)器</b> 具有更快的新算法

    使用Arduino Nano或Uno的Android頻率計數(shù)器

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Nano或Uno的Android頻率計數(shù)器.zip》資料免費下載
    發(fā)表于 11-22 10:43 ?2次下載
    使用<b class='flag-5'>Arduino</b> Nano或Uno的Android頻率<b class='flag-5'>計數(shù)器</b>

    基于Arduino UNO的細絲計數(shù)器

    基于Arduino UNO的細絲計數(shù)器
    發(fā)表于 12-08 11:47 ?0次下載

    用于桌上足球/足球的自動Arduino目標計數(shù)器

    電子發(fā)燒友網(wǎng)站提供《用于桌上足球/足球的自動Arduino目標計數(shù)器.zip》資料免費下載
    發(fā)表于 12-13 10:29 ?0次下載
    用于桌上足球/足球的自動<b class='flag-5'>Arduino</b>目標<b class='flag-5'>計數(shù)器</b>

    使用Arduino的簡單計數(shù)器

    方案介紹在本教程中,我們將學習如何制作簡單的步驟計數(shù)器。該項目在機器人技術(shù)中或需要計數(shù)些東西(例如電動機執(zhí)行多少步或傳感
    發(fā)表于 12-30 14:42 ?2次下載

    使用Arduino制作雙向訪客計數(shù)器

    電子發(fā)燒友網(wǎng)站提供《使用Arduino制作雙向訪客計數(shù)器.zip》資料免費下載
    發(fā)表于 02-01 11:35 ?9次下載
    使用<b class='flag-5'>Arduino</b>制作雙向訪客<b class='flag-5'>計數(shù)器</b>

    Arduino七段計數(shù)器

    電子發(fā)燒友網(wǎng)站提供《Arduino七段計數(shù)器.zip》資料免費下載
    發(fā)表于 02-09 09:51 ?0次下載
    <b class='flag-5'>Arduino</b>七段<b class='flag-5'>計數(shù)器</b>

    如何使用Arduino制作頻率計數(shù)器?

    嗎?本文涉及頻率計數(shù)器,測量頻率的測試設備。在本文結(jié)束時,您還將了解如何使用ARDUINO為自己制作。那么讓我們開始吧,好嗎?
    的頭像 發(fā)表于 04-02 14:34 ?6460次閱讀
    如何使用<b class='flag-5'>Arduino</b>制作<b class='flag-5'>一</b><b class='flag-5'>個</b>頻率<b class='flag-5'>計數(shù)器</b>?

    基于Arduino Nano 33 BLE Sense的深蹲計數(shù)器

    電子發(fā)燒友網(wǎng)站提供《基于Arduino Nano 33 BLE Sense的深蹲計數(shù)器.zip》資料免費下載
    發(fā)表于 06-15 10:52 ?0次下載
    基于<b class='flag-5'>Arduino</b> Nano 33 BLE Sense的深蹲<b class='flag-5'>計數(shù)器</b>

    使用Arduino UNO構(gòu)建4位二進制計數(shù)器

    電子發(fā)燒友網(wǎng)站提供《使用Arduino UNO構(gòu)建4位二進制計數(shù)器.zip》資料免費下載
    發(fā)表于 06-25 11:38 ?0次下載
    使用<b class='flag-5'>Arduino</b> UNO<b class='flag-5'>構(gòu)建</b>4位二進制<b class='flag-5'>計數(shù)器</b>

    計數(shù)器構(gòu)建

    電子發(fā)燒友網(wǎng)站提供《計數(shù)器構(gòu)建.zip》資料免費下載
    發(fā)表于 07-05 09:11 ?0次下載
    <b class='flag-5'>計數(shù)器</b>的<b class='flag-5'>構(gòu)建</b>

    使用Arduino制作簡單的頻率計數(shù)器

    電子發(fā)燒友網(wǎng)站提供《使用Arduino制作簡單的頻率計數(shù)器.zip》資料免費下載
    發(fā)表于 07-12 10:40 ?5次下載
    使用<b class='flag-5'>Arduino</b>制作簡單的頻率<b class='flag-5'>計數(shù)器</b>