資料介紹
描述
介紹
這個項目的想法實際上是出于對樂趣和知識的需要。這個項目很容易制作并且有很多應(yīng)用。例如,我們可以使用它來控制、存儲和顯示一些硬件變量。
讓我們開始吧
首先,我們需要連接我們的 LCD(我使用的是 I2C 轉(zhuǎn)換器):
當(dāng)我們這樣做時,我們可以進入下一部分......
讓我們寫一些代碼...
使用地址 0x3F 設(shè)置 16x2 LCD - I2C 總線設(shè)備的地址可以通過 Arduino Playground 上可用的簡單草圖掃描找到。
#include
#include
LiquidCrystal_I2C lcd(0x3F,16,2);
現(xiàn)在我們必須聲明一個String
變量來存儲我們的串行輸入并設(shè)置其余的東西。
String inData;
void setup()
{
lcd.init();
Serial.begin(9600);
lcd.backlight();
}
如果我們想通過字符串變量直接發(fā)送數(shù)據(jù),這可能會出現(xiàn)問題,因為基于字符串大小的延遲大約為一秒。為了避免這個使用char
變量并將其添加到我們的inData
.
char recieved = Serial.read();
inData += recieved;
好的,一切都很好,但是當(dāng)接收數(shù)據(jù)停止時?有解決辦法:
if (recieved == '*')
{ ... }
char 的最后一個何時為 * Arduino 將知道何時繼續(xù)下一部分,現(xiàn)在我們必須處理我們的消息。我們需要擺脫這個*
字符,所以:
inData.remove(inData.length() - 1, 1);
最后:
lcd.setCursor(0,0);
lcd.print(inData);
inData = ""; // Clear buffer
但是......我們有第二行未使用......這是解決方案
if (recieved == '#')
{
inData.remove(inData.length() - 1, 1);
lcd.setCursor(0,1);
lcd.print(inData);
inData = "";
}
}
當(dāng)最后一個字符為 # 時,Arduino 將設(shè)置我們 LCD 的第二行并打印其他數(shù)據(jù)。
配置
為什么是 C#,而不是 C 或 C++?C# 簡單快速(快速......我的意思是寫作)
首先,我們需要下載額外的庫以便于訪問我們的硬件變量。
解壓后,我們有我們的庫:OpenHardwareMonitorLib.dll
創(chuàng)建新項目 -> Windows 窗體應(yīng)用程序 -> 右鍵單擊??解決方案資源管理器中的引用 -> 瀏覽 -> OpenHardwareMonitorLib.dll 并且不要忘記檢查它。
外貌
準(zhǔn)備我們的表格:
?
現(xiàn)在代碼...
一些指令...
using System.IO.Ports;
using OpenHardwareMonitor.Hardware;
和聲明...
SerialPort port = new SerialPort();
Computer c = new Computer()
{
GPUEnabled = true,
CPUEnabled = true
};
float value1, value2;
c
是打開硬件監(jiān)視器對象。我們必須啟用 CPU 和 GPU。在表單加載事件中輸入:
c.Open();
在表單構(gòu)造函數(shù)中:
public Form1()
添加:
Init();
然后,在任何地方:
private void Init()
{
try
{
notifyIcon1.Visible = false;
port.Parity = Parity.None;
port.StopBits = StopBits.One;
port.DataBits = 8;
port.Handshake = Handshake.None;
port.RtsEnable = true;
string[] ports = SerialPort.GetPortNames();
foreach (string port in ports)
{
comboBox1.Items.Add(port);
}
port.BaudRate = 9600;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
簡單... 初始化聲明的變量,掃描打開的端口并將其添加到comboBox1
現(xiàn)在存儲和發(fā)送變量的主要功能:
private void Status()
{
foreach (var hardwadre in c.Hardware)
{
if (hardwadre.HardwareType == HardwareType.GpuNvidia)
{
hardwadre.Update();
foreach (var sensor in hardwadre.Sensors)
if (sensor.SensorType == SensorType.Temperature)
{
value1 = sensor.Value.GetValueOrDefault();
}
}
if (hardwadre.HardwareType == HardwareType.CPU)
{
hardwadre.Update();
foreach (var sensor in hardwadre.Sensors)
if (sensor.SensorType == SensorType.Temperature)
{
value2 = sensor.Value.GetValueOrDefault();
}
}
}
try
{
port.Write(value1 + "*" + value2 + "#");
}catch(Exception ex)
{
timer1.Stop();
MessageBox.Show(ex.Message);
toolStripStatusLabel1.Text = "Arduino's not responding...";
}
不要忘記為Status()
計時器滴答事件添加功能。
現(xiàn)在連接按鈕:
try
{
if (!port.IsOpen)
{
port.PortName = comboBox1.Text;
port.Open();
timer1.Interval = Convert.ToInt32(comboBox2.Text);
timer1.Enabled = true;
toolStripStatusLabel1.Text = "Sending data...";
label2.Text = "Connected";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
我們正在檢查端口是否已經(jīng)打開,如果沒有從 comboBox2 設(shè)置計時器間隔并運行所有內(nèi)容!
斷開按鈕:
try
{
port.Write("DIS*");
port.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
label2.Text = "Disconnected";
timer1.Enabled = false;
toolStripStatusLabel1.Text = "Connect to Arduino...";
data = "";
將最后一個數(shù)據(jù)寫入 Arduino,表示我們完成了。
您可以添加一些功能,例如隱藏到托盤等。(下面的完整代碼)
程序必須以管理員權(quán)限運行!
- 用于筆記本電腦顯示器的白光 LED驅(qū)動器TPS61181AIC數(shù)據(jù)表
- 七段顯示器開源分享
- Lytograph物聯(lián)網(wǎng)顯示器開源
- 平視顯示器鬧鐘開源分享
- Oled顯示器開源分享
- 使用Arduino測試7段顯示器
- vfd48顯示器開源分享
- 基于Arduino的機械彩色Nipkow顯示器
- 帶有Arduino Pro Mini的LED矩陣顯示器
- 電腦風(fēng)扇轉(zhuǎn)動但顯示器無圖象如何解決
- 樹莓派7.0寸usb電容觸摸顯示器的使用說明 15次下載
- TPS61181A用于筆記本電腦顯示器的白光LED(WLED)驅(qū)動器 3次下載
- 長城電腦顯示器C-1453電路圖 210次下載
- 顯示器調(diào)整方法探討
- 電腦顯示器電路圖
- 顯示器驅(qū)動板和電腦主板的區(qū)別 390次閱讀
- 顯示器自帶的揚聲器怎么設(shè)置 2227次閱讀
- 顯示器處理器芯片是什么?顯示器處理器芯片市場的發(fā)展趨勢 5665次閱讀
- 顯示器方案介紹|TYPE-C PD顯示器應(yīng)用方案簡介 826次閱讀
- 如何設(shè)置Arduino IoT將消息發(fā)送到云板顯示器 2303次閱讀
- 監(jiān)控顯示器能當(dāng)電腦顯示器嗎 1.8w次閱讀
- 工業(yè)顯示器和普通顯示器的區(qū)別 5391次閱讀
- 基于鉆井深度顯示器和帶有Arduino支持的7段顯示器設(shè)計 2670次閱讀
- 電腦顯示器不亮的原因有哪些應(yīng)該如何解決 2.1w次閱讀
- 液晶電腦顯示器高壓板的常見故障和維修方法 3.1w次閱讀
- 電腦硬件基礎(chǔ)篇顯示器(顯示器工作原理及作用_特性參數(shù)及型號和位置) 3.2w次閱讀
- 液晶顯示器的優(yōu)缺點_液晶顯示器原理介紹 1.5w次閱讀
- 顯示器色溫怎么調(diào)節(jié) 2.2w次閱讀
- 教你如何測試電腦顯示器 6.7w次閱讀
- 如何解決CRT顯示器的偏色問題? 3378次閱讀
下載排行
本周
- 1A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 2PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 3PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 4dsPIC33EDV64MC205電機控制開發(fā)板用戶指南
- 5.78MB | 8次下載 | 免費
- 5STC15系列常用寄存器匯總免費下載
- 1.60 MB | 7次下載 | 5 積分
- 6模擬電路仿真實現(xiàn)
- 2.94MB | 4次下載 | 免費
- 7PCB圖繪制實例操作
- 2.92MB | 2次下載 | 免費
- 8零死角玩轉(zhuǎn)STM32F103—指南者
- 26.78 MB | 1次下載 | 1 積分
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 141次下載 | 1 積分
- 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設(shè)計
- 0.10 MB | 137次下載 | 免費
- 4A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 5PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 6如何正確測試電源的紋波
- 0.36 MB | 19次下載 | 免費
- 7PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統(tǒng)EMC試驗方法及要求
- 1.97 MB | 8次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多