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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

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

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

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

所需組件:

Arduino UNO

TCS230顏色傳感器

紅外傳感器

面包板

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

連接電線(xiàn)

TCS3200 顏色傳感器工作

pYYBAGMDNNKAEkr2AAOYYl1tvgA110.png

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

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

TCS230顏色傳感器的輸出信號(hào)是一個(gè)方波,其占空比為50%,其頻率與所選濾波器的光強(qiáng)度成正比。

poYBAGMDNM6AZ0DPAACAl9p-1TU707.png

TCS3200顏色傳感器的引腳:

pYYBAGMDNMqAACRlAADRpIDoD2M596.png

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

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

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

S2,S3-照片二極管類(lèi)型選擇輸入

顏色傳感器的輸出銷(xiāo)

OE-啟用PIN的輸出頻率

我們還在該項(xiàng)目中使用了紅外傳感器,該項(xiàng)目可以通過(guò)以下鏈接來(lái)理解其工作。

電路原理

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

poYBAGMDNMaANiTLAAKKgoXyQ4s438.png

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

poYBAGMDNMGASewPAAIaB7Bhl9A939.png

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

代碼說(shuō)明

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

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

#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 上打印歡迎信息并定義此項(xiàng)目中使用的數(shù)字引腳的所有數(shù)據(jù)方向。接下來(lái),設(shè)置顏色傳感器的輸出頻率縮放,在我的例子中,它設(shè)置為 20%,可以通過(guò)給 S0 給高脈沖和給 S1 給低脈沖來(lái)設(shè)置。

無(wú)效設(shè)置()
{
  序列號(hào).開(kāi)始(9600);
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print(“智能錢(qián)包”);
  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ù)字寫(xiě)入(2,高);
  DigitalWrite(3,低);
}

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

int傳感器= DigitalRead(A0);
  int red1 = red();
  int blue1 = blue();
  int green1 = green();
  serial.println(red1);
  serial.println(blue1);
  serial.println(green1);
  serial.println(“ ----------------------------------------”);

接下來(lái),寫(xiě)所有條件,以使用我們之前設(shè)置的參考頻率檢查顏色傳感器的輸出頻率。如果匹配,則從錢(qián)包余額中扣除指定的金額。

  if(red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == high)
  {
    a = 1;
  }
  否則if(傳感器==低&& a == 1)
  {
    a = 0;
    如果(總計(jì)>=10)
    {
    lcd.setCursor(0, 1);
    lcd.print(“ 10盧比?。?!”);
    總計(jì)=總數(shù)10;
    延遲(1500);
    lcd.clear();
    }
  }

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

pYYBAGMDNLiADhElAAPvNKQJ7j8958.png

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

poYBAGMDNLWASfBYAAnVwJW8OkA452.png

以下代碼將顯示16x2 LCD錢(qián)包中的可用余額。

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

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

int red()

{

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

因此,這就是可以使用幾個(gè)組件輕松構(gòu)建基于Arduino的貨幣計(jì)數(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;

無(wú)效設(shè)置()

{

序列.開(kāi)始(9600);

lcd.Begin(16,2);

lcd.setcursor(0,0);

lcd.print(“智能錢(qián)包”);

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);

序列號(hào).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 盧比?。。?);

總計(jì)=總計(jì)-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 盧比!?。?);

總計(jì)=總50;

延遲(1500);

lcd.clear();

}

}

lcd.setCursor(0, 0);

lcd.print(“總BAL:”);

lcd.setcursor(11,0);

lcd.print(總計(jì));

延遲(1000);

}


int red()

{

digitalWrite(11, LOW);

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

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

返回頻率;

}

int blue()

{

digitalWrite(11, HIGH);

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

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

返回頻率;

}

int green()

{

digitalWrite(11, LOW);

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

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

返回頻率;

}

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

    關(guān)注

    32

    文章

    2259

    瀏覽量

    94868
  • 顏色傳感器
    +關(guān)注

    關(guān)注

    2

    文章

    96

    瀏覽量

    18202
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6477

    瀏覽量

    187556
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    構(gòu)建個(gè)4位二進(jìn)制計(jì)數(shù)器

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

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

    個(gè)電路,計(jì)算有多少人走過(guò)扇門(mén)或個(gè)對(duì)象通過(guò)個(gè)點(diǎn)
    的頭像 發(fā)表于 07-30 11:15 ?2164次閱讀

    使用紅外傳感構(gòu)建個(gè)Arduino計(jì)數(shù)機(jī)

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

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

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

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

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

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

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

    用于桌上足球/足球的自動(dòng)Arduino目標(biāo)計(jì)數(shù)器

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

    使用Arduino的簡(jiǎn)單計(jì)數(shù)器

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

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

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

    Arduino七段計(jì)數(shù)器

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

    如何使用Arduino制作個(gè)頻率計(jì)數(shù)器?

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

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

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

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

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

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

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

    使用Arduino制作簡(jiǎn)單的頻率計(jì)數(shù)器

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