色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>實時SD卡故障檢測系統

實時SD卡故障檢測系統

2022-12-13 | zip | 0.28 MB | 次下載 | 免費

資料介紹

描述

介紹

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

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

除了 3D 打印機,這種方法還可以用于任何使用存儲卡的系統或設備。

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

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

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

項目發展

構建代碼的邏輯非常簡單。我們需要在開始(void setup 函數)和代碼執行期間(循環函數內部)檢查卡是否已連接。

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

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

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

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

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

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

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

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

在所有這些過程之后,系統回到循環的開始并再次啟動所有邏輯。

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

編程邏輯

根據下面的代碼,插入了所用元素的庫: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 循環函數。可以看到,Display LCD和 Serial 已初始化。之后,進行了第一次測試以驗證我們的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 循環來驗證SD 卡在此過程中,系統會對 SD 卡進行初始化。如果初始化過程正常發生,那么SD卡就沒有問題了。但是,如果出現任何問題,系統將初始化SD 卡

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

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

在此之后,將執行 void 循環函數中的命令。void 循環函數的代碼如下所示。

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 循環函數中,將讀取按鈕的狀態以驗證我們的用戶是否按下了按鈕在要讀取的按鈕之后,有以下情況:

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

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

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

最后,文件將被關閉。因此,系統將多次驗證SD 卡

致謝

感謝PCBWay支持我們的 YouTube 頻道并生產和組裝質量更好的 PCB。

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


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

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 免费在线伦理片| 好满射太多了装不下了视频| 高清 仑乱 一级 a| 伦理片97影视网| 亚洲综合小说久久另类区| 国产精品色无码AV在线观看| 日韩 国产 中文 无码| 99久久精品免费国产一区二区三区| 久久re视频这里精品09首页| 为什么丈夫插我我却喜欢被打着插| 被黑人做的白浆直流| 热中文热国产热综合| chinese帅哥gv在线看| 欧美zzzoooxxx| 99热这里精品| 青草国产在线视频免费| 成人性生交大片| 日韩精品一区VR观看| 国产成人免费观看| 午夜神器18以下不能进免费| 国产色精品久久人妻无码| 亚洲国产中文字幕在线视频| 韩国女主播内部vip自带氏巾| 亚洲国产精品久久精品成人网站| 国内精品久久| 在线国内自拍精品视频| 老司机午夜影院味味| 99在线免费观看| 日日夜夜狠狠干| 国产色精品久久人妻无码 | 国产高清视频a在线大全| 我和黑帮老大第365天第2季在线 | 在线观看永久免费网站| 美女被撕开胸罩狂揉大乳| 97在线免费观看视频| 日本一卡精品视频免费| 国产免费不卡| 18亚洲男同gay1069| 任你懆视频 这里只有精品| 国产老肥熟xxxx| 2017日日干|