Arduino+esp32學習筆記

學習目標:

  • 使用Arduino配置好藍牙或者wifi模塊
  • 學習使用python配置好藍牙或者wifi模塊

學習內容(筆記):

一、 Arduino語法基礎


Arduino語法是基于C++的語法,C++又是c基礎上增加了面向對象思想等進階語言。那就只記錄沒見過的。

  • 單多行注釋 // 和 /**/
  • 變量(數字,字符串,布爾,對象)
  • 條件語句 if-else,switch
  • 循環語句 for while
  • 單多維數組 int arr[5]={1,2,3,4,5};
  • 函數 void
    在這里插入圖片描述

01、pinMode:設置引腳的輸入輸出狀態

pinMode(pin,Mode):
參數:
Pin:引腳號;
Mode:INPUT、OUTPUT

02、digitalWrite:設置輸出引腳的高低電平狀態

digitalWrite(pin,value)
參數:
Pin:引腳號 ;
value:HIGH LOW

03、digitalRead:讀取引腳的狀態,并返回HIGH 或LOW

int digitalRead(pin)
參數:
Pin:引腳號
返回值:
int:1/0

04、analogRead:讀出模擬引腳上的電壓,并以二進制數值返回(0-1023)對應為0~5v

int analogRead(pin)
參數:
Pin:引腳號
返回值:
二進制數值返回(0-1023)對應為0~5v

05、analogWrite:給PWM引腳輸出電壓值

analogWrite(pin,value)
參數:
pin:引腳號 ;
value:具體的pwm值,(0~255對應表示一個周期的高電平占空比)

06、shiftOut:將一個字節的數據通過移位的方式逐位的輸出

shiftOut(dataPin,clockPin,bitOrder,value)
參數:
dataPin:數據引腳
clockPin:時鐘引腳
bitOrder:移位順序(MSBFIRST-高;LSBFIRST-低)
value:需要進行移位傳輸的值
說明:
在輸出數據時,當一位數據寫入數據輸出引腳時,時鐘引腳將輸出脈沖信號,指示該位數據已被寫入數據輸出引腳等待外設讀取。并且在使用本函數之前datapin和clockpin引腳應該設置為輸出狀態。本函數一次只能輸出一個字節的內容,也就是說最大一次只能輸出255,如果大于255,就要多次調用這個函數。

07、mills:回傳單片機從開始執行到現在目前的時間(單位:ms)

unsigned long mills()
返回值:
unsigned long 單位:ms

08、delay:占用單片機的時間(即延時,單位:ms)

delay(number)
參數:
number:其代表占用單片機的時間長度

09、delay Microseconds:占用單片機的時間(單位:us)

delay Microseconds( number)
參數:
number:其代表占用單片機的時間

10、pulseIn:讀取脈沖寬度。 從脈沖狀態為state開始,到脈沖狀態為~state為止。當然是由時間限制的

pulseIn(pin,state,timeout)
參數:
pin:模擬引腳號
state:讀取脈沖的類型(高或者低)
timeout:等待脈沖讀取完成的最長時間,如果參數中沒有這一個,那么默認就是1min

11、map() 將數字從一個范圍重新映射到另一個范圍。

函數原型:
map(value, fromLow, fromHigh, toLow, toHigh)
value:要映射的數
fromLow:當前值范圍的下限
fromHigh:當前值范圍的下限
toLow:目標值范圍的下限
toHigh:目標值范圍的上限
返回值:映射后的值
eg: (讀取IO0的模擬電壓(01023),并將其設置到IO9(0255)(其實也就是PWM))
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val);

12、串口相關

設置串口波特率:
Serial.begin(9600);

讀取某IO口參數:
int buttonState = digitalRead(pushButton);

讀取A0腳輸入值大小(0-5V對應0~1023):
int sensorValue = analogRead(A0);

串口顯示器輸出:
Serial.println()

產生pwm信號:
analogWrite(pin, val)//val 是 0~255 的整數值,對應電壓從 0 到+5V

二、 面包板和杜邦線(了解)


面包板用來快速搭接電路的工具;
優點:提高實驗效率,減少實驗故障發生率。
在這里插入圖片描述
在這里插入圖片描述

杜邦線用來連接元件,分為母母線,公母線,公公線(我目前沒遇到過要使用公線的情況,所以買了一些母母線連接)

三、點亮LED測試板子


bug:
上傳失敗: 未提供上傳端口

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
拿捏,粉色運行燈,藍色是D2引腳的LED,板子上只有一個區,所以在代碼中直接寫整型即可。

//定義LED引腳
int LED_PIN=2;
void setup() {// 開發板通電或者復位后執行,通常用來初始化,只運行一次// 設定引腳為輸出模式pinMode(LED_PIN,OUTPUT);// 點亮LEDdigitalWrite(LED_PIN,HIGH);}void loop() {// put your main code here, to run repeatedly://一個死循環,不斷的重復運行
}

在這里插入圖片描述在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/34898.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/34898.shtml
英文地址,請注明出處:http://en.pswp.cn/news/34898.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

全國各城市-貨物進出口總額和利用外資-外商直接投資額實際使用額(1999-2020年)

最新數據顯示,全國各城市外商直接投資額實際使用額在過去一年中呈現了穩步增長的趨勢。這一數據為研究者提供了對中國外商投資活動的全面了解,并對未來投資趨勢和政策制定提供了重要參考。 首先,這一數據反映了中國各城市作為外商投資的熱門目…

Effective Java筆記(31)利用有限制通配符來提升 API 的靈活性

參數化類型是不變的&#xff08; invariant &#xff09; 。 換句話說&#xff0c;對于任何兩個截然不同的類型 Typel 和 Type2 而言&#xff0c; List<Type1 &#xff1e;既不是 List<Type 2 &#xff1e; 的子類型&#xff0c;也不是它的超類型 。雖然 L ist<String…

Oracle自定義函數生成MySQL表結構的DDL語句

1. 自定義函數fnc_table_to_mysql create or replace function fnc_table_to_mysql ( i_owner in string, i_table_name in string, i_number_default_type in string : decimal, i_auto_incretment_column_name in stri…

Linux 文件查看命令

一、cat命令 1.cat文件名&#xff0c;查看文件內容&#xff1a; 例如&#xff0c;查看main.c文件的內容&#xff1a; 2.cat < 文件名&#xff0c;往文件中寫入數據&#xff0c; Ctrld是結束輸入 例如&#xff0c;向文件a.txt中寫入數據&#xff1a; 查看剛剛寫入a.txt的…

Yolov5(一)VOC劃分數據集、VOC轉YOLO數據集

代碼使用方法注意修改一下路徑、驗證集比例、類別名稱&#xff0c;其他均不需要改動&#xff0c;自動劃分訓練集、驗證集、建好全部文件夾、一鍵自動生成Yolo格式數據集在當前目錄下&#xff0c;大家可以直接修改相應的配置文件進行訓練。 目錄 使用方法&#xff1a; 全部代碼…

解決監督學習,深度學習報錯:AttributeError: ‘xxx‘ object has no attribute ‘module‘!!!!

哈嘍小伙伴們大家好呀&#xff0c;很長時間沒有更新啦&#xff0c;最近在研究一個問題&#xff0c;就是AttributeError: xxx object has no attribute module 今天終于是解決了&#xff0c;所以來記錄分享一下&#xff1a; 我這里出現的問題是&#xff1a; 因為我的數據比較大…

SQL優化

一、插入數據 優化 1.1 普通插入&#xff08;小數據量&#xff09; 普通插入&#xff08;小數據量&#xff09;&#xff1a; 采用批量插入&#xff08;一次插入的數據不建議超過1000條&#xff09;手動提交事務主鍵順序插入 1.2 大批量數據插入 大批量插入&#xff1a;&…

Android 開發中需要了解的 Gradle 知識

作者&#xff1a;wkxjc Gradle 是一個基于 Groovy 的構建工具&#xff0c;用于構建 Android 應用程序。在 Android 開發中&#xff0c;了解 Gradle 是非常重要的&#xff0c;因為它是 Android Studio 默認的構建工具&#xff0c;可以幫助我們管理依賴項、構建應用程序、運行測試…

macOS 如何安裝git和nvm

首先&#xff1a;先來安裝git 打開macOS終端 將下面的命令復制粘貼進去&#xff1a; curl -O https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.41.0.tar.gz 版本號可以參考一下官網的 我這里安裝的是目前最新的2.41.0 然后在終端輸入下面的代碼或者雙擊git的…

數據結構:力扣OJ題

目錄 ?編輯題一&#xff1a;鏈表分割 思路一&#xff1a; 題二&#xff1a;相交鏈表 思路一&#xff1a; 題三&#xff1a;環形鏈表 思路一&#xff1a; 題四&#xff1a;鏈表的回文結構 思路一&#xff1a; 鏈表反轉&#xff1a; 查找中間節點&#xff1a; 本人實力…

YOLOv8+ByteTrack多目標跟蹤(行人車輛計數與越界識別)

課程鏈接&#xff1a;https://edu.csdn.net/course/detail/38901 ByteTrack是發表于2022年的ECCV國際會議的先進的多目標跟蹤算法。YOLOv8代碼中已集成了ByteTrack。本課程使用YOLOv8和ByteTrack對視頻中的行人、車輛做多目標跟蹤計數與越界識別&#xff0c;開展YOLOv8目標檢測…

Leetcode每日一題:23. 合并 K 個升序鏈表(2023.8.12 C++)

目錄 23. 合并 K 個升序鏈表 題目描述&#xff1a; 實現代碼與解析&#xff1a; 優先級隊列&#xff1a; 原理思路&#xff1a; 23. 合并 K 個升序鏈表 題目描述&#xff1a; 給你一個鏈表數組&#xff0c;每個鏈表都已經按升序排列。 請你將所有鏈表合并到一個升序鏈表…

Flutter: A RenderFlex overflowed by 42 pixels on the bottom.

Flutter&#xff1a;渲染活動底部上方溢出了42個像素 Flutter 控件超出異常&#xff1a;A RenderFlex overflowed by 42 pixels on the bottom. 解決方案 1.Scaffold內添加 resizeToAvoidBottomInset 屬性&#xff0c;缺點是軟鍵盤下面的控件被擋住 Scaffold( resizeToAvoidBot…

第一百二十七天學習記錄:我的創作紀念日

機緣 今天收到CSDN官方的來信&#xff0c;想想也可以對我前面的學習記錄進行一個總結。 關于來到CSDN的初心&#xff0c;也就是為了讓自己養成一個良好的學習總結的習慣。這里要感謝我C語言視頻教程的老師&#xff0c;是他建議學生們在技術博客中進行記錄。對于技術博客&…

web-Element

在vueapp里<div><!-- <h1>{{message}}</h1> --><element-view></element-view></div> <div><!-- <h1>{{message}}</h1> --><element-view></element-view></div>在view新建個文件 <t…

C++ VTK 8.2 如何繪制彈簧圖形

//創建圓柱 vtkSmartPointer<vtkCylinderSource> spCylinderSource vtkSmartPointer<vtkCylinderSource>::New(); spCylinderSource->SetHeight(m_dCylinderHeight); // 設置圓柱的高度 spCylinderSource->SetRadius(m_dCylinderRadius)…

Spring(12) BeanFactory 和 ApplicationContext 區別

目錄 一、BeanFactory 和 ApplicationContext 區別&#xff1f;二、既然 Spring Boot 中使用的是 ApplicationContext 進行應用程序的啟動和管理&#xff0c;那么 Spring Boot 會用到 BeanFactory 嗎&#xff1f; 一、BeanFactory 和 ApplicationContext 區別&#xff1f; Bea…

git clone使用https協議報錯OpenSSL SSL_read: Connection was reset, errno 10054

在使用git 下載github上的代碼時&#xff0c; 一般有ssh協議和https協議兩種。使用ssh協議可以成功clone代碼&#xff0c; 但使用https協議時出錯&#xff1a; $ git clone https://github.com/openai/improved-diffusion.git Cloning into improved-diffusion... fatal: unab…

vue或uniapp使用pdf.js預覽

一、先下載穩定版的pdf.js&#xff0c;可以去官網下載 官網下載地址 或 pdf.js包下載(已配置好&#xff0c;無需修改) 二、下載好的pdf.js文件放在public下靜態文件里&#xff0c; uniapp是放在 static下靜態文件里 三、使用方式 1. vue項目 注意路徑 :src"static/pd…

每日一題 206反轉鏈表

題目 給你單鏈表的頭節點 head &#xff0c;請你反轉鏈表&#xff0c;并返回反轉后的鏈表。 示例 1&#xff1a; 輸入&#xff1a;head [1,2,3,4,5] 輸出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 輸入&#xff1a;head [1,2] 輸出&#xff1a;[2,1]示例 3&#xff1a; …