Arduino串口

2021-02-08 CSDN技術社區

//定義一個comdata字符串變量,賦初值為空值

String comdata = "";

//numdata是分拆之後的數字數組

int numdata[6] = {0}, PWMPin[6] = {3, 5, 6, 9, 10, 11}, mark = 0;

void setup()

{

//定義0~6腳是輸出

for(int i = 0; i < 6; i++) pinMode(PWMPin[i], OUTPUT);

Serial.begin(9600);

}

void loop()

{

//j是分拆之後數字數組的位置記數

int j = 0;

//不斷循環檢測串口緩存,一個個讀入字符串,

while (Serial.available() > 0)

{

//讀入之後將字符串,串接到comdata上面。

comdata += char(Serial.read());

//延時一會,讓串口緩存準備好下一個數字,不延時會導致數據丟失,

delay(2);

//標記串口讀過數據,如果沒有數據的話,直接不執行這個while了。

mark = 1;

}

if(mark == 1)  //如果接收到數據則執行comdata分析操作,否則什麼都不做。

{

//顯示剛才輸入的字符串(可選語句)

Serial.println(comdata);

//顯示剛才輸入的字符串長度(可選語句)

Serial.println(comdata.length());

/*******************下面是重點*******************/

//以串口讀取字符串長度循環,

for(int i = 0; i < comdata.length() ; i++)

{

//逐個分析comdata[i]字符串的文字,如果碰到文字是分隔符(這裡選擇逗號分割)則將結果數組位置下移一位

//即比如11,22,33,55開始的11記到numdata[0];碰到逗號就j等於1了,

//再轉換就轉換到numdata[1];再碰到逗號就記到numdata[2];以此類推,直到字符串結束

if(comdata[i] == ',')

{

j++;

}

else

{

//如果沒有逗號的話,就將讀到的數字*10加上以前讀入的數字,

//並且(comdata[i] - '0')就是將字符'0'的ASCII碼轉換成數字0(下面不再敘述此問題,直接視作數字0)。

//比如輸入數字是12345,有5次沒有碰到逗號的機會,就會執行5次此語句。

//因為左邊的數字先獲取到,並且numdata[0]等於0,

//所以第一次循環是numdata[0] = 0*10+1 = 1

//第二次numdata[0]等於1,循環是numdata[0] = 1*10+2 = 12

//第三次是numdata[0]等於12,循環是numdata[0] = 12*10+3 = 123

//第四次是numdata[0]等於123,循環是numdata[0] = 123*10+4 = 1234

//如此類推,字符串將被變成數字0。

numdata[j] = numdata[j] * 10 + (comdata[i] - '0');

}

}

//comdata的字符串已經全部轉換到numdata了,清空comdata以便下一次使用,

//如果不請空的話,本次結果極有可能干擾下一次。

comdata = String("");

//循環輸出numdata的內容,並且寫到PWM引腳

for(int i = 0; i < 6; i++)

{

Serial.print("Pin ");

Serial.print(PWMPin[i]);

Serial.print(" = ");

Serial.println(numdata[i]);

analogWrite(PWMPin[i], numdata[i]);

numdata[i] = 0;

}

//輸出之後必須將讀到數據的mark置0,不置0下次循環就不能使用了。

mark = 0;

}

}

相關焦點

  • Arduino串口通信簡介
    語法:Serial.begin(speed);  參數speed: 波特率,一般取值300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600,115200這裡設置好波特率之後,需要在串口監視器中也設置同樣的波特率,只有這樣,arduino
  • Arduino基礎入門篇23—串口通訊
    在很多時候,Arduino需要和其他設備相互通訊,而最常見最簡單的方式就是串口通訊。本篇介紹Arduino硬體串口通訊,了解相關函數的使用。1. 硬體串口在PC機上最常見的串行通訊協議是RS-232串行協議,而各種微控制器(單片機)上採用的是TTL串行協議,兩者電平不同,需要經過相應電平轉換才能進行相互通訊。
  • Arduino_集合Arduino教程、Arduino IDE及設計應用的技術專題
    在線等挺急的 詳細點 回答28# eepwlover:Arduino開發工具(arduino IDE) 1.0.5 綠色免費版
  • arduino 從零開始(2)探索arduino開發板和arduino IDE
    1、你將會探索arduino開發板2、你將會打開並上傳程序到arduino 板3、你將會學到arduino程序的基本框架和基本函數4、你將會自己編寫並上傳arduino程序一、arduino 板簡單來說,arduino(硬體)就是一個可以用來根據你的要求進行編程從而可以和很多輸入輸出設備進行交互的一個微型電腦系統。
  • arduino設置串口模式專題及常見問題 - CSDN
    與arduino uno主板不同, ESP32的PWM模擬是一個個通道 共16個, 通道可以映射到引腳上. 引腳就可以輸出PWM信號了.2、關閉串口Serial.end()描述:禁止串口傳輸。此時串口Rx和Tx可以作為數字IO引腳使用。原型:Serial.end()參數:無。返回值:無。3、串口列印Serial.print()描述:串口輸出數據,寫入字符數據到串口。
  • Arduino的串口通訊函數
    串口通訊是單片機當中用到的最多的一種通訊,對我而言,它最大的一個優勢就是簡單,相對於I2C、SPI等,參與串口通訊的線只有兩根,分別為接收端、發送端,當然還包括電源線,我們暫且不管。單片機工作的時候一般都是單片機與之間單片機通訊,還有一種就是單片機與電腦的通訊,與電腦通訊主要是調試單片機的時候使用,那麼串口通訊到底在通訊什麼呢?它主要傳輸一些數據,比如12345、ABCD,也可以傳輸漢字,但是很少有人用漢字傳輸數據的,你知道為什麼嗎?單片機之間為什麼要串口通訊呢?是它們閒的無聊?
  • Arduino為什麼這麼火
    正文:這一兩年間,arduino作為一個能夠快速表現設計想法的工具,日漸火了起來,愛好者們自發性、非官方組織起來的論壇社區日漸豐富和活躍,近一兩年小夥伴們的作品集中也越來越多地涉及arduino相關的項目案例,那麼我們就簡單地來看一下
  • 萬能超的arduino學習日記(一)
    本科時候有接觸過arduino,但是由於導師方向原因,轉做了3D列印和動力學分析,所以這裡是啥都會一點點的萬能超,希望能夠和大家一起學習討論。最近由於興趣原因,決定重新撿起arduino,所以決定寫這個萬能超的arduino學習日記跟大家一起重新學習。最開始的入門學習,我選擇跟B站太極創客的學習視頻,因為有基礎,選擇二倍速觀看學習。
  • Arduino 機器學習實戰入門(下)
    從https://arduino.cc/downloads下載並安裝Arduino IDE在Arduino IDE菜單中選擇工具>板>板管理器…搜索並安裝Arduino_TensorFlowLite庫接下來搜索並安裝Arduino_LSM9DS1庫:選擇板工具>板> Arduino Nano 33 BLE選擇埠工具>埠> COM5 (Arduino Nano
  • LABVIEW+Arduino
    而arduino可以模擬這些操作,再與LABVIEW相結合,可以在同一程序能實現切換頻點、通道等的操作,並根據測試需要將所需要的測試數據記錄在相應的表格內。一、什麼是arduinoArduino是一款便捷靈活、方便上手的開源電子原型平臺。包含硬體(各種型號的Arduino板)和軟體(Arduino IDE)。由一個歐洲開發團隊於2005年冬季開發。
  • 初步認識Arduino
    CPU,16MHz時鐘頻率,32KB快閃記憶體Flash(0.5 KB用於引導程序bootloader),2KB SRAM,1KB EEPROM)ISCP引腳14個數字I/O接口(含標有~的6個脈寬調製 PWN輸出)用於輸入輸出0或1這樣的二進位數據串口狀態燈
  • Arduino學習第五彈——串口的應用:藍牙模塊
    常說的Arduino串口通信,是指異步串行通信方式,數據以字節為單位一幀一幀的發送和接收,無需同步時鐘,節省了設備的開銷。       本次學習我們利用串口的目的是建立Arduino和HC-06藍牙模塊的通信,使藍牙模塊能在專用的AT指令下正常工作。
  • Arduino圖形編程軟體下串口監視器的應用
    在很多的Arduino編程中,很少見有人專門利用串口監視器進行工作,但是我們認為串口監視器的用處非常重要,在以後的教程中,我們在任何需要的地方都要進行監視,用以發現程序運行過程。這節課的示例主要是通過一個比較原始的閃爍實驗,來獲得高低電位,然後通過高低電位再次控制Led燈的閃爍。
  • arduino串口調試設置專題及常見問題 - CSDN
    USB連接電腦,串口1連接無線模塊;2、AT+Shift,啟動串口無線設置:程序自動設置無線模塊參數,串口1發送參數到無限模塊,並將返回參數通過模擬串口顯示。無法在Arduino IDE的串口監視器中顯示,需要使用串口調試助手 USR-TCP232-Test-V1.33、按鍵有更新,模擬串口顯示按鍵數據+發送數據+按鍵功能(Arduino IDE查看),串口1無線模塊發送8位數據(串口調試助手查看)。
  • Arduino入門參考教程(1)基礎知識與開發環境篇
    食用前請自帶飯碗——Arduino UNO R3(某寶有售,便宜的大概23RMB左右一塊)1.關於Arduino2.關於Arduino IDE(開發環境)3.關於Arduino UNO R3開發板    Arduino 是一款便捷靈活、方便上手的開源電子原型平臺,包含硬體(各種型號的arduino板)和軟體(arduino
  • 如何用Matlab連接控制Arduino:GUI界面製作與電機控制
    下圖展示如何從GUIDE進入按鈕的編輯界面,在這裡我們將添加對Arduino相應的IO口或者串口的操作。13,'output');  讀寫引腳的狀態  a.digitalRead(4)  a.digitalWrite(13,0)  模擬量輸入或者輸出操作  a.analogRead(5)  a.analogWrite(9,155)  串口操作  a.serial%getserialport
  • arduino學習筆記之OLED液晶屏
    1.arduino UNO開發板2.OLED 顯示屏3.導線若干4.取模軟體OLED 顯示屏有四個引腳,分別是:SDA(數據線) SCK(時鐘線) VDD(3.3V) GND在UNO開發板上I2C接口,SDA對應D4,SCK對應D5在MEGA2560開發板上I2C接口,SDA對應D20, SCL對應D21
  • Arduino DUE 發布,首個 ARM 開發板
    Arduino Due 提供 54 個數字輸入輸出管腳(其中 12 個可用於 PWM 輸出,支持可選解析度),12 個模擬輸入,4個 UARTs(硬體串口)和兩個 DAC 輸出(數模轉換),84 MHz 晶振,兩個 USB 口,一個電源插口,一個 ICSP 頭,一個 JTAG 頭和一個 Reset 按鈕。I/O 管腳最大可提供 3.3v 電源,注意 5 伏電壓會損壞開發板。
  • 可變電阻控制幾何體形態(Grasshopper、C#腳本、Arduino)
    我們先逐行來分析一下這段代碼:System.IO.Ports.SerialPort sp = new System.IO.Ports.SerialPort();這句的意思是實例化了一個SerialPort(串口)對象,命名為sp,這個串口對象就可以看成是計算機和外設交互數據串口的代表。
  • 用Arduino開發物聯網設備之初識Arduino
    硬體部分:最初Arduino硬體只有那麼幾種,uno、mini等,但是現在經過這麼多年的發展,越來越多的硬體支持了arduino開發環境,所以現在也很難去界定什麼是血統純正的arduino硬體了。軟體部分:這部分也就是我們平時說的Arduino,我們其實使用的就是arduino框架來對很多的mcu來進行編程。這裡很多小夥伴其實有很多疑問,比如為什麼要用arduino來進行?