目录

本编代码仅供参考,如有错误欢迎提出,后期及时改正

一、高低电平输出:

二、串口通信:

三、控制sg90舵机:

四、超声波:

五、Wemos 连接wifi:

六、点亮LCD1602a:

1602a自己创建显示字符 例如 :   摄氏度符合

七、DS18B20防水型的水温测棒:


本编代码仅供参考,如有错误欢迎提出,后期及时改正

一、高低电平输出:
void setup() {
    pinMode(D5, OUTPUT);    //设置D5引脚为输出引脚
}
void loop() {
        digitalWrite(D5, LOW);    //输出低电平,蜂鸣器燥起来
        delay(1000);
        digitalWrite(D5, HIGH);   //输出高电平,蜂鸣器闭嘴
        delay(1000);              //延时一秒
}
二、串口通信:
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("hello world");       //测试串口是否启动,启动成功就发送start
}
//串口控制蜂鸣器
void setup() {
    pinMode(D5, OUTPUT);                 //设置引脚为输出引脚
    Serial.begin(115200);                     //初始化串口,设置波特率为115200
    Serial.println("start");                      //测试串口是否启动,启动成功就发送start
    digitalWrite(D5, HIGH);        
}
void loop() {
int cmd;
if (Serial.available() > 0) {                     //检测串口是否有数据
        cmd = Serial.read();                         // 读取串口数据
if (cmd == 1) {                                 //如果读取的数据是 1 
            digitalWrite(D5, HIGH);               // 蜂鸣器不响起
            Serial.println(cmd);
        }
else if (cmd == 0) {
            digitalWrite(D5, LOW);         // 否则(读取数据为 0 )蜂鸣器响
            Serial.println(cmd);
        }
    }
}
三、控制sg90舵机:
//控制sg90舵机
#include <Servo.h>
  
 #define DuoPIN D5   //定义D5管脚为DuoPIN 
  
 Servo myDuoJi;    //把servo命名为myDuoJi,两者具有等同的作用
  
 void setup() {
   myDuoJi.attach(DuoPIN);  //连接舵机
  
 }
  
 void loop() {
    myDuoJi.write(200);   //角度控制
    delay(1000);
    myDuoJi.write(0);
    delay(1000);
 }四、超声波:
#include <Servo.h>
#define Echo  D2
#define Trig  D8
#define DEP   D4                  //配置蜂鸣器端口
long GetTime() {
    digitalWrite(Trig, HIGH);
    delayMicroseconds(10);          // 10 微妙
    digitalWrite(Trig, LOW);
return pulseIn(Echo, HIGH);     //返回值
}
void Init_ultrasonic() {
    pinMode(Echo, INPUT);
    pinMode(Trig, OUTPUT);
}
void setup() {
// put your setup code here, to run once:
    Init_ultrasonic();
    Serial.begin(115200);         //波特率
    pinMode(DEP, OUTPUT);       //设置引脚为输出引脚
    digitalWrite(DEP, HIGH);    //初始化状态
}
void loop() {
//获取距离
long dis;
    dis = GetTime() / 58;
    Serial.print(dis);
    Serial.println("cm");
    delay(500);
if (dis < 10) {        
        digitalWrite(DEP, LOW);
        delay(300);
        digitalWrite(DEP, HIGH);
        myDuoJi.write(140);
        delay(2000);
        myDuoJi.write(0);
    }
else {
        digitalWrite(DEP, HIGH);
        myDuoJi.write(0);
    }
}
五、Wemos 连接wifi:
//Wemos连接WiFi
#include <ESP8266WiFi.h>
//可手机开热点
char* ssid = "Electronic";    //连接wifi的名称
char* passwd = "929bxk9f";    //连接wifi的密码
void initWifiSta() {
    WiFi.mode(WIFI_STA);       //设置STA模式
    WiFi.begin(ssid, passwd);  //连接网络
while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");       //如果未连接执行循环
        delay(500);
    }
}
//=========================================================================
void setup() {
//打开串口
    Serial.begin(115200);
//启动wifi
//接入wifi
    initWifiSta();
}
void loop() {
    Serial.println(WiFi.localIP()); //通过串口打印wemos的IP地址
    delay(500);
}
//=============================   手机软件控制   ==============================
#include "ESP8266WiFi.h"
char* ssid = "Neo5";
 char* passwd = "929bxk9f";int Port = 8888;
 WiFiServer server(Port);void Initwifi()
 {
   WiFi.mode(WIFI_STA);
   WiFi.begin(ssid, passwd);
   while(WiFi.status() != WL_CONNECTED)
   {
     Serial.print(".");
     delay(500);
   }
   Serial.println(WiFi.localIP()); //通过串口打印wemos的IP地址
 }void setup()
 {
   pinMode(D4, OUTPUT);
   pinMode(D5, OUTPUT);
   pinMode(D6, OUTPUT);
   pinMode(D7, OUTPUT);
   
   Serial.begin(115200);
   Initwifi();
   server.begin();
 }void loop()
 {
   char cmd; WiFiClient client = server.available(); 
   while(client.connected())
   {
     while(client.available() > 0)
     {
       cmd = client.read();
       if(cmd == '1')
       {
         digitalWrite(D4, HIGH);
         digitalWrite(D5, LOW);
       }
       else if(cmd == '2')
       {
         digitalWrite(D4, LOW);
         digitalWrite(D5, HIGH);
       }
       else if(cmd == '3')
       {
         digitalWrite(D6, HIGH);
         digitalWrite(D7, LOW);
       }
       else if(cmd == '4')
       {
         digitalWrite(D6, LOW);
         digitalWrite(D7, HIGH);
       }
     }
   }
 }


 

六、点亮LCD1602a:

ESP826612S控制舵机 esp8266控制舵机代码_单片机

/***********************************************************************************************************************************************************************
VSS连接GND、VDD连接 +5V、V0外接一个10K可调电阻、RS连接arduino上的D12、RW连接GND(输出默认低电平)、E连接arduino上的D10、D0、D1、D2、D3、D4连接arduino上的D5、D5连接arduino上的D4、D6连接arduino上的D3、D7连接arduino上的D2、A连接+5V、K连接GND        
D0~D3不用连
四线传输,所以一次只能传输一个字节
例:在1602a上显示数字16则先显示1后面再显示6
***********************************************************************************************************************************************************************/
//LCD1602A代码
#include<LiquidCrystal.h>
//申明1602液晶的引脚所连接的Arduino数字端口,8线或4线数据模式
LiquidCrystal lcd(12, 13, 15, 14, 4, 5, 16);   //4线 D12 D11 D10 D5 D4 D3 D2
//LiquidCrystal lcd(12,13,15,2,0,13,12,14,4,5,16) //D2 ~ D12
void setup(void){
    lcd.begin(16, 2);
    lcd.home();         //初始化,把光标移动至第0行第0列
}
void loop(void){
        lcd.setCursor(0, 1);                //把光标移动至第1行第0列
        lcd.print("hello world");        //在第1行第0列输出
}
1602a自己创建显示字符 例如 :   摄氏度符合
//1602创造字符
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 13, 15, 14, 4, 5, 16);
byte tian[8] = {  //"摄氏度符号"的数据
  0b00111,
  0b00101,
  0b00111,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
};
void setup() {
    lcd.begin(16, 2);
    lcd.createChar(0, tian);  //写入"摄氏度符号"的数据
}
void loop() {
    lcd.setCursor(0, 0);
    lcd.write(byte(0));  //显示"摄氏度符号"
}

七、DS18B20防水型的水温测棒:

/***********************************************************************************************************************************************************************
DS18B20模块有三条线,红线连接+5V,黑线连接GND,黄线为数据接口连接D7
***********************************************************************************************************************************************************************/
//DS18B20温度计
#include <OneWire.h>
#include <DallasTemperature.h>
// 定义DS18B20数据口连接arduino IO上
#define ONE_WIRE_BUS D7        //可以在这里修改数据接口,D2~D13都可以
// 初始连接在单总线上的单总线设备
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup(void)
{
// 设置串口通信波特率
    Serial.begin(9600);
// 初始库
    sensors.begin();
}
void loop(void)
{
    Serial.print("当前温度");
    sensors.requestTemperatures(); // 发送命令获取温度
    Serial.println(sensors.getTempCByIndex(0));       //串口显示当前温度
    delay(500);
}