chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>實時SD卡故障檢測系統(tǒng)

實時SD卡故障檢測系統(tǒng)

2022-12-13 | zip | 0.28 MB | 次下載 | 免費(fèi)

資料介紹

描述

介紹

在某些系統(tǒng)上,例如 3D 打印機(jī),存儲卡用于保存打印文件。因此,在打印開始和打印過程中檢查存儲卡連接非常重要。

因此,在任何連接或卡故障的情況下,系統(tǒng)必須能夠檢測到故障并在系統(tǒng)LCD 屏幕上通知用戶。

除了 3D 打印機(jī),這種方法還可以用于任何使用存儲卡的系統(tǒng)或設(shè)備。

因此,我們提出了一個電路來測試解決方案,如圖 1 所示。

接下來,我們將創(chuàng)建并解釋一種算法,用于在系統(tǒng)執(zhí)行過程中檢測存儲卡的故障或未連接。

?
poYBAGOX2qeAWBQCAAGJoFEsmGM529.png
圖 1 - 溶液測試電路。
?

項目發(fā)展

構(gòu)建代碼的邏輯非常簡單。我們需要在開始(void setup 函數(shù))和代碼執(zhí)行期間(循環(huán)函數(shù)內(nèi)部)檢查卡是否已連接。

如果未檢測到卡,則必須在LCD屏幕上輸入一條消息以通知用戶,如圖 2 所示。

?
pYYBAGOX2rSAOp7yAAF1RwSB_XE687.jpg
圖 2 - 失敗或卡斷開的消息。
?

這樣,用戶將卡片插入,系統(tǒng)將再次重新運(yùn)行,并顯示“卡片已連接!”的消息,如圖 3 所示。

?
pYYBAGOX2ryASFdEAAFgREFtJhc88.jpeg
圖 3 - 已連接消息卡。
?

系統(tǒng)驗證SD卡狀態(tài)后,系統(tǒng)將等待用戶按下按鈕,開始對10個ADC值在SD卡中的存儲處理。此時,它將顯示如圖 4 所示的消息。

?
pYYBAGOX2suAQ2SbAAF4biKskck54.jpeg
圖 4 - 用戶按下按鈕以啟動存儲過程的消息。
?

用戶按下按鈕后,系統(tǒng)會在SD 卡中存儲 10 個單位的 ADC 值,并在屏幕上顯示信息:“正在存儲數(shù)據(jù)...”和“成功完成”,通知存儲過程結(jié)束。這些消息如下所示。

?
?
?
?
pYYBAGOX2s-AeCH3AAFG-iI6eUg36.jpeg
?
1 / 2 ?圖 5 - (1) 存儲數(shù)據(jù)的消息和 (2) 成功完成的消息。
?

在所有這些過程之后,系統(tǒng)回到循環(huán)的開始并再次啟動所有邏輯。

此后,我們將介紹和討論為解決該問題而開發(fā)的代碼。

編程邏輯

根據(jù)下面的代碼,插入了所用元素的庫:LCD 顯示器、SD 卡并聲明了代碼的所有變量。

#include <SD.h>
#include <SPI.h>
#include <LiquidCrystal.h>
  
File myFile;
  
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
  
#define AnalogPin A0
  
int pinoSS = 10; // Pin 53 para Mega / Pin 10 para UNO
int DigitalValue = 0;
byte samples = 0;
bool SDCardTest = 0, ControlState = 0, LCDControl = 0;

在這個代碼塊之后,我們將在下面展示 void 循環(huán)函數(shù)。可以看到,Display LCD和 Serial 已初始化。之后,進(jìn)行了第一次測試以驗證我們的SD 卡是否已連接或失敗。

void setup()
{ 
   Serial.begin(9600); // Define BaundRate
   lcd.begin(16, 2);
   pinMode(pinoSS, OUTPUT); // Declara pinoSS como saída
     delay(500);
   lcd.clear();    
   do
   {
     if (SD.begin()) 
     { // Inicializa o SD Card
       lcd.setCursor(6,0);
       lcd.print("Card");
       lcd.setCursor(3,1);
       lcd.print("Connected!");
       delay(2000);
       SDCardTest = 1;
     } 
       else 
     {
       lcd.clear();
       Serial.println("imprimindo segunda mensagem de erro.");
       lcd.setCursor(1,0);
       lcd.print("Failed or Card");
       lcd.setCursor(2,1);
       lcd.print("disconnected");
       SDCardTest = 0;
     }
   }while(SDCardTest == 0);
     
     lcd.clear();
     lcd.setCursor(0,0);
     lcd.print("Press the button");
     lcd.setCursor(1,1);
     lcd.print("To store data");
}

有一個 do-while 循環(huán)來驗證SD 卡。在此過程中,系統(tǒng)會對 SD 卡進(jìn)行初始化。如果初始化過程正常發(fā)生,那么SD卡就沒有問題了。但是,如果出現(xiàn)任何問題,系統(tǒng)將初始化SD 卡。

這種方式將在顯示 LCD中顯示“失敗或卡斷開”消息,并且變量 SDCardTest 將接收值 0。該變量將用于控制循環(huán)執(zhí)行。

解決問題并重新連接SD卡后,將顯示消息“按下按鈕存儲數(shù)據(jù)”。

在此之后,將執(zhí)行 void 循環(huán)函數(shù)中的命令。void 循環(huán)函數(shù)的代碼如下所示。

void loop()
{
          bool Button = digitalRead(8);
  
          if(LCDControl == 0)
          {
           lcd.setCursor(0,0);
           lcd.print("Press the button");
           lcd.setCursor(1,1);
           lcd.print("To store data");
           LCDControl = 1;
          }
         
         if(Button == 0 && ControlState == 1)
         {
           ControlState = 0;  
         }    
         if(Button == 1 && ControlState == 0)
         {
           myFile = SD.open("silicioslab.txt", FILE_WRITE); // Create/Open File the txt
           delay(500);
           lcd.clear();
           lcd.setCursor(4,0);
           lcd.print("Storing");
           lcd.setCursor(4,1);
           lcd.print("data...");
           do
           {              
             DigitalValue = analogRead(AnalogPin);
             myFile.println(DigitalValue);
             delay(400);
             samples++;
           }while(samples < 10);
  
           samples = 0;
  
           lcd.clear();
  
           lcd.setCursor(4,0);
           lcd.print("Finished");
           lcd.setCursor(2,1);
           lcd.print("Successfully");            
           delay(2000);
           myFile.close(); //Close file
           LCDControl = 0;
           ControlState = 0;
         }
  
         do
         {
           if (SD.begin()) 
           {
               SDCardTest = 1;          
           } 
             else
           {
             lcd.clear();
             lcd.setCursor(1,0);
             lcd.print("Failed or Card");
             lcd.setCursor(2,1);
             lcd.print("disconnected");
             SDCardTest = 0; 
             LCDControl = 0;   
             Serial.println("Verificando problema...");     
           }
         }while(SDCardTest == 0);
}

在 void 循環(huán)函數(shù)中,將讀取按鈕的狀態(tài)以驗證我們的用戶是否按下了按鈕。在要讀取的按鈕之后,有以下情況:

if(LCDControl == 0)
{
  lcd.setCursor(0,0);
  lcd.print("Press the button");
  lcd.setCursor(1,1);
  lcd.print("To store data");
  LCDControl = 1;
}

此條件用于允許“按下按鈕存儲數(shù)據(jù)”消息僅顯示一次。這可以防止文本多次顯示,并可能在屏幕上產(chǎn)生奇怪的效果。

之后,如果按下按鈕,文件將打開,10 個值將保存在SD 卡中,隨后出現(xiàn)“Finishing Successfully”消息,通知該過程完成。

最后,文件將被關(guān)閉。因此,系統(tǒng)將多次驗證SD 卡

致謝

感謝PCBWay支持我們的 YouTube 頻道并生產(chǎn)和組裝質(zhì)量更好的 PCB。

Silícios 實驗室感謝UTSOURCE提供電子元件。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1PFC電路與BOOST電路設(shè)計實例分享
  2. 1.83 MB   |  12次下載  |  4 積分
  3. 2世平基于靈動微 SPIN560C 的低壓無刷電機(jī)應(yīng)用方案
  4. 10.93 MB  |  11次下載  |  免費(fèi)
  5. 3電源測試報告-基于 國民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  6. 6.47 MB  |  11次下載  |  免費(fèi)
  7. 4PWM控制器的控制方法
  8. 0.39 MB   |  3次下載  |  4 積分
  9. 5電流檢測芯片F(xiàn)P135應(yīng)用說明
  10. 1.24 MB   |  3次下載  |  免費(fèi)
  11. 6全面解讀被動式與主動式PFC電路
  12. 1.27 MB   |  1次下載  |  4 積分
  13. 7HC88L051F4低功耗芯片規(guī)格書
  14. 4.76 MB  |  1次下載  |  免費(fèi)
  15. 8CIU32D655x5數(shù)據(jù)手冊
  16. 2.14 MB   |  1次下載  |  免費(fèi)

本月

  1. 1常用電子元器件使用手冊
  2. 2.40 MB   |  52次下載  |  免費(fèi)
  3. 2高功率密度碳化硅MOSFET軟開關(guān)三相逆變器損耗分析
  4. 2.27 MB   |  33次下載  |  10 積分
  5. 3PFC電路與BOOST電路設(shè)計實例分享
  6. 1.83 MB   |  12次下載  |  4 積分
  7. 4世平基于靈動微 SPIN560C 的低壓無刷電機(jī)應(yīng)用方案
  8. 10.93 MB  |  11次下載  |  免費(fèi)
  9. 5電源測試報告-基于 國民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  10. 6.47 MB  |  11次下載  |  免費(fèi)
  11. 6USB拓展塢PCB圖資料
  12. 0.57 MB   |  11次下載  |  免費(fèi)
  13. 7MS1826 HDMI 多功能視頻處理器數(shù)據(jù)手冊
  14. 4.51 MB   |  9次下載  |  免費(fèi)
  15. 8HAL9303線性霍爾效應(yīng)傳感器技術(shù)手冊
  16. 0.70 MB   |  9次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935134次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191424次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183352次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81600次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分