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

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

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

如何使用中斷將消息寫入LCD屏幕

454398 ? 來(lái)源:wv ? 2019-10-14 09:41 ? 次閱讀

步驟1:連接LCD屏幕

如何使用中斷將消息寫入LCD屏幕

首先,我們將連接LCD顯示。

LCD屏幕使用Arduino上的6個(gè)引腳板。首先,將LCD顯示屏的兩個(gè)外部引腳以及引腳5都接地。接下來(lái),將引腳2和倒數(shù)第二個(gè)引腳連接到5V。

下一步,使用以下映射連接這些引腳:

LCD 4 =》 Arduino 7

LCD 6 =》 Arduino 8

LCD 11 =》 Arduino 9

LCD 12 =》 Arduino 10

LCD 13 =》 Arduino 11

LCD 14 =》 Arduino 12

就是LCD顯示器了!

步驟2:連接電位計(jì)

下一步使用基本電位器。電位器的中間引腳連接到LCD顯示屏上的引腳3。電位器的左側(cè)引腳為5V,而右側(cè)引腳接地。

在此之后,又有一塊硬件,然后我們繼續(xù)進(jìn)行代碼操作。

第3步:添加按鈕

現(xiàn)在已經(jīng)連接了帶有電位計(jì)的LCD顯示屏,我們需要一個(gè)按鈕來(lái)引起硬件中斷。將Arduino上的引腳2連接到按鈕的一側(cè),使另一側(cè)的電路繼續(xù)接地。在與地面相同的一側(cè),將另一個(gè)引腳連接到5V。

這完成了硬件設(shè)置。

步驟4:實(shí)現(xiàn)代碼

我已經(jīng)上載了用于該項(xiàng)目的代碼,因此您可以根據(jù)需要為您的電路板或您要執(zhí)行的操作對(duì)其進(jìn)行修改。

關(guān)于在Arduino Uno上實(shí)現(xiàn)硬件中斷的注意事項(xiàng)是您必須使用引腳2或3,因?yàn)檫@是唯一可用于中斷的引腳。除此之外,如果需要,可以更改其他大多數(shù)引腳。

另一個(gè)警告是,為了使這種類型的設(shè)置正常工作,您需要使用millis()方法來(lái)實(shí)現(xiàn)延遲,因?yàn)樗诤笈_(tái)工作,所以不同于delay()方法,該方法暫停CPU并實(shí)際上使用CPU周期,即使它看起來(lái)處于靜止?fàn)顟B(tài)也是如此。 millis()使用Arduino的內(nèi)置硬件計(jì)時(shí)器之一完成工作,因此它在后臺(tái)運(yùn)行,并且在主循環(huán)期間不會(huì)停止CPU。

下面是代碼:

#include

// initialize the library with the numbers of the interface pins

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

const int buttonPin = 2; // Button pin

volatile bool buttonPressed = false; // Gauge if the button is pressed

int wait = 500; // ms to wait between messages

int messageWait = 3000; // ms to display an interrupt message

unsigned long current = 0; // Holds current timestamp

void setup()

{

Serial.begin(9600); // For debugging, remove if you want

pinMode( buttonPin, INPUT_PULLUP ); // Setup for hardware interrupt

// [interrupt, method used, when to call]

attachInterrupt( digitalPinToInterrupt( buttonPin ), showMessage, RISING );

lcd.begin(16, 2); // set up the LCD‘s number of columns and rows:

lcd.print(“Timer:”); // Print on the top line

current = millis(); // Set up the current time

} // setup

void loop()

{

if( buttonPressed )

{

delay( 3000 ); // Put this in the main loop to stop

// the message from being erased

buttonPressed = false; // After the delay, continue the loop

lcd.setCursor(0, 1); // Set the cursor to char 0 on line 1

lcd.print( “ ” ); // Clear the display

}

else if( millis() 》 current + wait )

{

// set the cursor to column 0, line 1

// (note: line 1 is the second row, since counting begins with 0):

lcd.setCursor(0, 1); // Set the cursor to char 0 on line 1

lcd.print( (String) ( millis() / (float) 1000 ) ); // Output sec passed

current = millis(); // Set current time

} // if.。.else if

} // loop

void showMessage()

{

String message = “Intrpt: ” + (String) millis();

lcd.setCursor(0, 1); // Set the cursor to char 0 on line 1

lcd.print( “Intrpt: ” + (String) ( millis() / (float) 1000 ) ); // Output interrupt

buttonPressed = true; // Indicate button was pressed.

// Handle the button press in

// the main loop.

Serial.println(“=================================”); // debug

Serial.println( message ); // debug

} // showMessage

現(xiàn)在您可以使用中斷了,做點(diǎn)很酷的事情!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • lcd
    lcd
    +關(guān)注

    關(guān)注

    34

    文章

    4463

    瀏覽量

    168792
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    900

    瀏覽量

    41904
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DLP3010如何edid寫入eeprom中?

    參考DLPDLCR3010EVM_G2的設(shè)計(jì),經(jīng)過(guò)測(cè)試發(fā)現(xiàn)無(wú)法edid寫入空白的eeprom中,請(qǐng)問(wèn)這個(gè)是自動(dòng)寫入edid到eepron中,還是需要預(yù)先寫入edid至eeprom中
    發(fā)表于 02-19 08:01

    【RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用】06、PWM輸出實(shí)驗(yàn)+給LCD屏幕PWM調(diào)光

    0 前言 本次實(shí)驗(yàn)要實(shí)現(xiàn)使用瑞薩 R7FA4E2B93CFM 進(jìn)行PWM輸出,并對(duì)之前TFT-LCD屏幕實(shí)驗(yàn)中的屏幕進(jìn)行亮度調(diào)節(jié)測(cè)試。 1 硬件部分 之前是TFT
    發(fā)表于 12-19 20:27

    tft屏幕屬于lcd屏幕的一種嗎

    TFT屏幕確實(shí)屬于LCD(液晶顯示器)屏幕的一種。LCD屏幕是一種廣泛使用的顯示技術(shù),它通過(guò)液晶分子的排列變化來(lái)控制光線的通過(guò),從而實(shí)現(xiàn)圖像
    的頭像 發(fā)表于 10-12 10:31 ?1364次閱讀

    如何向EEPROM寫入數(shù)字

    向EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲(chǔ)器)寫入數(shù)字是一個(gè)相對(duì)直接的過(guò)程,但涉及到多個(gè)步驟和細(xì)節(jié)。以下是一個(gè)詳細(xì)的步驟說(shuō)明,旨在幫助您理解并成功向EEPROM寫入數(shù)字。
    的頭像 發(fā)表于 09-05 10:56 ?1361次閱讀

    蘋果iPhone全面擁抱OLED屏幕,夏普與JDI出局

    蘋果公司宣布了一項(xiàng)重大變革,自2025年起,其全系iPhone全面升級(jí)至OLED屏幕,這一決定標(biāo)志著LCD屏幕時(shí)代的終結(jié),也預(yù)示著智能手機(jī)顯示技術(shù)的又一次飛躍。此次轉(zhuǎn)型不僅覆蓋了旗艦
    的頭像 發(fā)表于 09-04 15:46 ?485次閱讀

    AM3352+WM8137+LM386+LCD聲音通過(guò)揚(yáng)聲器輸出,LCD屏幕出現(xiàn)水波紋的原因?

    你好,系統(tǒng)組成:AM3352+WM8137+LM386+LCD,聲音通過(guò)揚(yáng)聲器輸出,就是一個(gè)8歐姆的喇叭,喇叭響的時(shí)候輸入電源5V會(huì)被干擾,導(dǎo)致了其他電源的問(wèn)題,LCD屏幕出現(xiàn)水波紋。
    發(fā)表于 08-20 07:30

    如何在i2c中將hello world發(fā)送到LCD屏幕?

    有誰(shuí)知道如何在 i2c 中告訴這個(gè)以 hello world 發(fā)送到 LCD 屏幕?當(dāng)我查找我的 4BIT 引腳時(shí),我可以很好地做到這一點(diǎn),但是當(dāng)使用 i2c 時(shí),我似乎在任何地方都找不到協(xié)議的任何細(xì)節(jié),每個(gè)人都只想談?wù)撎炷牡?/div>
    發(fā)表于 07-11 06:10

    智能設(shè)備中的語(yǔ)音是如何寫入語(yǔ)音芯片的

    語(yǔ)音寫入語(yǔ)音芯片需經(jīng)語(yǔ)音文件準(zhǔn)備、格式轉(zhuǎn)換、燒錄過(guò)程、燒錄方式選擇和調(diào)試測(cè)試。雖非直接通過(guò)電腦寫入,但電腦在其中扮演重要角色。
    的頭像 發(fā)表于 07-10 11:45 ?814次閱讀

    TC367_5V_TFT LCD屏幕顯示不全怎么解決?

    好好, LCD 屏幕顯示不全,只顯示最下面菜單行,斷點(diǎn)調(diào)試發(fā)現(xiàn),在執(zhí)行 while (IfxQspi_SpiMaster_getStatus
    發(fā)表于 07-04 07:53

    PSOC6閃存寫入會(huì)禁用中斷數(shù)毫秒 ,為什么?

    我們使用的是 PSOC63。 我們觀察到,在向閃存寫入數(shù)據(jù)時(shí),即使在非阻塞模式下,所有中斷也會(huì)被禁用幾毫秒! 在調(diào)查閃存驅(qū)動(dòng)程序的源代碼后,我們發(fā)現(xiàn)在阻塞模式和非阻塞模式下都會(huì)出現(xiàn)這種情況
    發(fā)表于 07-04 07:22

    在STM32F429使用內(nèi)部TFT控制器進(jìn)行LCD顯示,是否可以存在鎖住屏幕的操作?

    在STM32F429使用內(nèi)部TFT控制器進(jìn)行LCD顯示,是否可以存在鎖住屏幕 的操作。即不讀SDRAM,LCD顯示的內(nèi)容可以不變。 有這種控制嗎?
    發(fā)表于 05-17 08:08

    關(guān)于STM8驅(qū)動(dòng)LCD1602遇到的問(wèn)題求解

    )//寫入數(shù)據(jù) { LCD1602_E = 0;//使能清零 LCD1602_RS = 1;//選擇寫入數(shù)據(jù) LCD1602_RW =
    發(fā)表于 04-28 07:09

    LCD液晶顯示屏的分類 lcd屏幕和led屏幕區(qū)別

    LCD屏幕的構(gòu)造大致有:背光層——第一道偏光片——TFT薄膜基板——液晶層——TFT薄膜基板——C/F玻璃(彩色濾光片)——第二道偏光片。
    的頭像 發(fā)表于 04-01 16:44 ?6115次閱讀
    <b class='flag-5'>LCD</b>液晶顯示屏的分類 <b class='flag-5'>lcd</b><b class='flag-5'>屏幕</b>和led<b class='flag-5'>屏幕</b>區(qū)別

    STM32F030F4使用HAL_SPI_Transmit發(fā)送函數(shù),執(zhí)行到數(shù)據(jù)寫入DR時(shí)就進(jìn)硬件錯(cuò)誤中斷怎么解決?

    使用的HAL_SPI_Transmit發(fā)送函數(shù),發(fā)現(xiàn)執(zhí)行到數(shù)據(jù)寫入DR時(shí)就進(jìn)硬件錯(cuò)誤中斷了 stm32f03xx_hal_spi.c中,,執(zhí)行到下面就硬件錯(cuò)誤了. 使用IO模擬是沒(méi)有問(wèn)題的,整的我一時(shí)摸不著頭腦了,網(wǎng)上找了一圈也沒(méi)有具體方法,請(qǐng)教下大家怎么搞.
    發(fā)表于 03-28 07:11

    用STM32L4R9驅(qū)動(dòng)480*800的LCD屏幕,結(jié)果屏幕刷新看起來(lái)是逐行進(jìn)行,刷新速度較慢,是否正常?

    請(qǐng)問(wèn)一下,用STM32L4R9驅(qū)動(dòng)480*800的LCD屏幕(采用一個(gè)數(shù)據(jù)通道),結(jié)果屏幕刷新看起來(lái)是逐行進(jìn)行,刷新速度較慢,是否正常,如果有問(wèn)題可能會(huì)是哪里?例程和資料都可以看出整屏同時(shí)刷新才對(duì)。謝謝
    發(fā)表于 03-22 07:04