我是靠谱客的博主 年轻月光,最近开发中收集的这篇文章主要介绍1.arduino单片机入门,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

面包板
在这里插入图片描述

1.点击范例—>basics–>blink

  setup是初始化, loop是不停做这个操作
   void setup(){
      pinMode(13,OUTPUT) //13脚(灯)用来输出
    }
 void loop(){
     digitalWrite(13,HIGH);
     delay(1000);//延迟一秒
     digitalWrite(13,LOW);
     delay(1000);    //看到版上暗一秒亮一秒
  }
  //按上面向右按钮烧录到

2.需要的材料

  面包板(让线看起来不那么麻烦) 1k欧姆以下 老师使用的是250欧姆
  杜邦线
  2个led灯
  void setup(){
      pinMode(12,OUTPUT); //打开12脚(灯)用来输出
      pinMode(11,OUTPUT);
    }
 void loop(){
     digitalWrite(12,HIGH);
     digitalWrite(11,LOW);
     delay(1000);//延迟一秒
      digitalWrite(12,LOW);
     digitalWrite(11,HIGH);
     delay(1000);    //看到版上暗一秒亮一秒
  }
  //解释面包板
    第一行是 ----------全部连接
    中间是| 横着的全部连接
   //怎么接led灯,加电阻(是电阻很小,电流太大,容易烧掉),如图
   //开发板gnd接一行,标数字的都是正级
   //led灯紧紧连接电阻,返回gnd行
    //gnd是负极
   

在这里插入图片描述

2.按钮

//板上写5v,与gnd连接,要加电阻,不然烧坏,需要10k欧姆电阻,把电压变0v
//加上按钮,需要接加一条线到开发板探测电压变化
//控制5v的接口, //7号探测 //按钮可以动态当接线 范例—>digital–>button

  //
   int btnState=0;
    void setup(){
      pinMode(13,OUTPUT); //打开12脚(灯)用来输出
      pinMode(7,INPUT);  //input就是探测器
    }
   void loop(){
       btnState=digitalRead(7);//读7号位状态
       if(btnState == HIGH){
     	digitalWrite(13,HIGH);
       }else{
	digitalWrite(13,LOW);
       }

    }

3.序列号输出(看例子 DigitalReadSerial)

   int buttonState=0;
   int beforeState=0;
   int presstime=0;
    void setup(){
         Serial.begin(9600);// 与电脑连接的速度
           pinMode(7,INPUT); 
    }
   void loop(){
  	buttonState=digitalRead(7); //返回0和1
                if(buttonState ==1 and beforeState ==0){
                   presstime=presstime+1;
                   Serial.print("xxx");//输出到电脑屏幕,自动弹出来
                   Serial.println(presstime);
               }
               if(buttonState!=beforeState){
              		delay(50); //可以解决debounce的问题
                }
             beforeState=buttonState;
          
    }

4.debounce(弹下) 按钮因为有弹性,导致几秒会电压变化大(元件的问题),如上代码解决

//加上if判断与之前的状态,自行调整debounce的时间(50ms比较保险,不同按钮时间不同)

在这里插入图片描述
在这里插入图片描述

5.类比讯号输入(就是探测)(需要可变电阻,电位器)
如图4

//在uno A开头是 监听变化电压讯号
//板上 ~开头的是什么? 监听讯号变化
//电位器的大小是0-1023,我不要这个范围怎么办
在这里插入图片描述

int sensor=A0;
int sensorRead=0;
int newdata=0;
void setup(){
         Serial.begin(9600);// 与电脑连接的速度
        pinMode(6,OUTPUT);// !!!代表打开这个 接口,不要写成INPUT,写的时候才搞
}
void loop(){
  sensorRead=analogRead(sensor);
  newdata=map(sensorRead,0,1023,0,255);//电位器的大小是0-1023,我不要这个范围怎么办改成0-255,因为定义255是最亮的
  Serial.println(newdata);
  analogWrite(6,newdata);
  delay(200);
}
   

6.伺服电机SG-90(3条线,5v可以转到特定的角度)与直流马达(2条,纯转动)的区别
//红色是正极 棕线是负极 橘子线是讯号线
//红色解5v 棕gnd ,橘线~9讯号线,reset,IOREF也是5v,也可以用面包板接
//代码,在案例的Knob
![在这里插入图片描述](https://img-blog.csdnimg.cn/f11b5be946164e0ca8a200dd0a3ba3e8.png

    #include <Servo.h> //导入相关库才可以用私服马达
   myservo.attach(9);//使用的控制脚位
   myservo.write(90);//转90度,最大0-180度
   delay(15);


   
#include <Servo.h>

Servo myservo;  // create servo object to control a servo

int sensor=0;
int angle=0;

void setup() {
       myservo.attach(9);
}

void loop() {
     sensor=analogRead(A0);
     angle =map(sensor,0,1023,0,180);
     myservo.write(angle);
     delay(15);
            
    
  delay(15);                           
}

7.伺服马达(3条线,转到指定角度)与步进马达(转过指定角度,可以转一圈,4-6条线)的区别
如图5,由内部4个线圈, 接gnd中间磁铁就会移动到指定位置
左边高电平,右边会接地 ,只需要注意左最下是gnd
//电源arn提供不了需要,外接电源
//不影响adn,把adn的gnd接电池负极请添加图片描述

   int apin=8;
   int bpin=8;
   int cpin=8;
   int dpin=8;
   void setup(){
	pinMode(apin,OUTPUT);
                pinMode(bpin,OUTPUT);
                pinMode(cpin,OUTPUT);
                pinMode(dpin,OUTPUT);
       }
    void loop(){
     digitalWrite(dpin,LOW);
       digitalWrite(apin,HIGH);
        delay(10);
      digitalWrite(apin,LOW);
      digitalWrite(bpin,HIGH);
        delay(10);
      digitalWrite(bpin,LOW);
      digitalWrite(cpin,HIGH);
        delay(10);
         digitalWrite(cpin,LOW);
      digitalWrite(dpin,HIGH);
     }

8.wifi连接

   file -->preferences addition boards manager urls :  
    http://arduino.esp8266.com/stable/package_esp8266com_index.json
    toos-->board mananger-->搜索esp8266安装

9.红外线传感器
请添加图片描述

 1. https://github.com/Arduino-IRremote/Arduino-IRremote
   下载压缩包 adn里面 的sketch include lib加入
  #include <IRremote.h>
  int RECV_PIN=8;
  int LIGHT=A2;
  IRrecv irrecv(RECV_PIN);
  decode_results results;
   void setup(){
	    Serial.begin(9600);
      Serial.println("aaa");
      irrecv.enableIRIn();//启用红外线接收器
      pinMode(LIGHT,OUTPUT);
    }
    void loop(){
      if(irrecv.decode(&results)){
           Serial.println(results.value);
           if(results.value=4294967295){
             digitalWrite(LIGHT,!digitalRead(LIGHT));
           }
           irrecv.resume();
      }
      delay(100);
    
     }

10.attiny85 当烧录机

 tools-->添加管理员-->添加url
 //reset接电容 10uF 到adn 长端接reset 短的接gnd
  工具--->烧录器avr改为 adn as ISP

图adn13
在这里插入图片描述

11.8*8矩阵 可以控制64个灯
图adn14 15

在这里插入图片描述
在这里插入图片描述

10.大平台(可以扩展多个adn接口)

在这里插入图片描述
11.控制多个灯
请添加图片描述
attiny45
在这里插入图片描述
12.10*10矩阵灯
在这里插入图片描述

最后

以上就是年轻月光为你收集整理的1.arduino单片机入门的全部内容,希望文章能够帮你解决1.arduino单片机入门所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部