Wemos D1快速入门

Wemos D1快速入门

I/O口的输入输出

void setup() 
{
		pinMode(D2, OUTPUT); //设置引脚为输出引脚
		pinMode(D3, INPUT);  //设置引脚为输入引脚
}
void loop()
{
		digitalWrite(D2, HIGH); // 输出高电平
		digitalWrite(D2, LOW);  // 输出高电平
		digitalRead(D3);       //读取D3脚返回值 1或0
		delay(1000);		       //延时1秒 
}

串口通信

Serial.begin()

  • 描述:开启串口,通常置于setup函数中
  • 原型
Serial.begin(speed);
Serial.begin(speed,config);
  • 参数
  • speed:波特率,通常为9600,115200等
    
  • config:设置数据位、校验位和停止位。默认SERIAL_8N1表示8个数据位,无校验位,1个停止位。
    
  • 返回值:无

Serial.println()

  • 描述:串口输出数据并换行
  • 原型
Serial.println(val);
Serial.println(val,format);
  • 参数
  • val:打印的值,任意数据类型
    
  • format:输出数据格式
    

返回值:返回写入的字节数

Serial.available()

  • 描述:判断串口缓冲区的状态,返回串口缓冲区读取的字节数
  • 原型:Serial.available()
  • 参数:无
  • 返回值:可读取的字节数

Serial.read()

  • 描述:读取串口数据,一次读一个字符,读完后删除已读数据
  • 原型:Serial.read()
  • 参数:无
  • 返回值:返回串口缓存区第一个可读字节,当没有可读数据时返回-1,整数类型

典例

void setup() 
{
		pinMode(D2, OUTPUT);    //设置引脚为输出引脚
		Serial.begin(115200);   //初始化串口,设置波特率为115200
}
void loop() 
{
		if (Serial.available()>0)                //检测串口是否有数据
		{   
				int cmd = Serial.read();        //读取串口数据
				if (cmd == 1)             		//如果读取的数据是1
						digitalWrite(D2,LOW);  //D2输出低电平
				else 
						digitalWrite(D2,HIGH); //D2输出高电平 
		}
}

SG90舵机

servo函数的用法

attach 连接舵机(自带库仅9/10脚有效)
write 角度控制
writeMicroseconds() 更精准的角度控制(um级)
read() 读上一次舵机转动角度
attached() 检查舵机是否连接控制板上
detach() 断开舵机连接,使接口(9/10脚)可做PWM输出

典例

#include
Servo myduoji;		//定义一个类
void setup() 
{
		myduoji.attach(D5);   //连接D5所接的舵机
}
void loop()
{
		myduoji.write(0);	 //角度为0度
		delay(1000);
}	

超声波

典例

long gettime()					//获取高电平时间
{
		digitalWrite(Trig, HIGH);			
		delayMicroseconds(10);		 //发送一个10微秒脉冲
		digitalWrite(Trig, LOW);		 
		return pulseIn(Echo, HIGH);	//计算高电平时间获取波传输时间
}
void initBo()			//初始化超声波
{
		pinMode(Echo, INPUT);
		pinMode(Trig, OUTPUT);
}

void loop() 
{
		int dis=gettime()/58;
}

Wemos和wifi

连接网络

板载无线网卡
支持AP(路由), STA(上网设备)模式

#include
char* ssid = "TP-LINK-888"  //“wifi热点名称”
char* passwd = "12345678";   //”wifi热点密码”
void initWifiSta(){
		WiFi.mode(WIFI_STA);         // 设置STA模式
		WiFi.begin(ssid, passwd);   //连接网络
		while (WiFi.status() != WL_CONNECTED) {
				Serial.print(".");
				delay(500);
		}
	    Serial.println(WiFi.localIP());//串口打印wemos的IP地址
		delay(500);
}
void setup() 
{
		Serial.begin(115200);		//启动串口
		initWifiSta();		//接入wiff
}
void loop(){
		Serial.println(WiFi.localIP());    //通过串口打印wemos的IP地址
		delay(500);
}

CS模式

地址:ip地址,域名等
端口号:一台电脑或者设备有多个服务每个服务用端口号区别

int port = 8888;  //端口号
WiFiServer server(port); // 设置服务器端口号
void setup() 
{
		Serial.begin(115200);		//启动串口
		initWifiSta();		//接入wiff
		server.begin();		//启动服务器
		pinMode(D2, OUTPUT); //设置引脚为输出引脚
}
void loop(){
    char cmd;
    WiFiClient client = server.available(); //服务器初始化
    while (client.connected())
    {  
        //等待客户端连接
        while (client.available()>0) 
        {  
            //有数据到来,类似串口的那个函数
            cmd = client.read();//读取数据
            if(cmd=='1')
            {   
                  //收到客户端命令 ‘1’    //执行个人所需要的程序,如:
                  digitalWrite(D2, LOW);    //输出低电平
             }
             else
             {
                  //执行个人所需要的程序
             }
        }
    }
}

你可能感兴趣的:(51单片机,c语言,arduino)