99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

電子發(fā)燒友App

硬聲App

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

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

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

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

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

資料介紹

描述

介紹

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

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

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

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

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

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

項目發(fā)展

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

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

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

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

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

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

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

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

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

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

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

編程邏輯

根據下面的代碼,插入了所用元素的庫: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)函數。可以看到,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 循環(huán)來驗證SD 卡。在此過程中,系統(tǒng)會對 SD 卡進行初始化。如果初始化過程正常發(fā)生,那么SD卡就沒有問題了。但是,如果出現任何問題,系統(tǒng)將初始化SD 卡。

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

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

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

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)函數中,將讀取按鈕的狀態(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;
}

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

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

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

致謝

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

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


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

評論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費
  3. 2AD庫封裝庫安裝教程
  4. 0.49 MB   |  1次下載  |  免費
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費
  7. 4網絡安全從業(yè)者入門指南
  8. 2.91 MB   |  1次下載  |  免費
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費
  11. 6海川SM5701規(guī)格書
  12. 1.48 MB  |  次下載  |  免費
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護等級說明
  16. 0.08 MB   |  次下載  |  免費

本月

  1. 1貼片三極管上的印字與真實名稱的對照表詳細說明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設計指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分