zoukankan      html  css  js  c++  java
  • lilypad arduino main +红外+风扇

    lilypad是为可穿戴技术和电子织物设计的微控制器板

    利用该开发板做了一个红外遥控控制的风扇

    函数,LilyPad Arduino上的14个数字I/O引脚可以用作输入或输出。它们在5V电压下工作。每个引脚最多可提供或接收40 mA电流,

    并具有20 kOhms的内部上拉电阻(默认情况下已断开)。此外,某些引脚还具有特殊功能:PWM:5、6、9、10、11通过analogWrite()函数

    提供8位PWM输出模拟输入:A0-A5。 LilyPad Simple Arduino具有6个模拟输入,标记为A0至A5,所有这些都还可用作数字I/O。

    每个模拟输入提供10位分辨率(即1024个不同值)。默认情况下,模拟输入的测量范围是从地面到5伏,

    使用之前需要先将红外遥控的码值读出来

    这里风扇驱动使用的L298N

      1 #include <IRremote.h>     // IRremote库声明  
      2   
      3 int RECV_PIN = 11;        //定义红外接收器的引脚为11  
      4 int IN1 = 1;   // IN1 connected to pin 1
      5 int IN2 = 2;   
      6 int ENA = 5;   //pwm
      7 int flag_se = 0;
      8 int flag_ts = 0;
      9 int value = 64;
     10 IRrecv irrecv(RECV_PIN);   
     11   
     12 decode_results results;   //解码结果放在 decode results结构的 result中
     13 
     14 void blink()
     15 {
     16   digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
     17   delay(200);                       // wait for a second
     18   digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
     19   delay(200);                       // wait for a second
     20 }
     21 void start_end()
     22 {
     23   if (flag_se == 0)
     24   {
     25     analogWrite(ENA, value);
     26     flag_se = 1;
     27   }
     28   else if(flag_se == 1)
     29   {
     30 
     31     analogWrite(ENA, 0);
     32     flag_se = 0;
     33   }
     34 }
     35 
     36 void tiaosu()
     37 {
     38   switch(flag_ts)
     39   {
     40     case 0:value= 64;analogWrite(ENA,value);flag_ts=1;break;
     41     case 1:value=128;analogWrite(ENA,value);flag_ts=2;break;
     42     case 2:value=192;analogWrite(ENA,value);flag_ts=3;break;
     43     case 3:value=255;analogWrite(ENA,value);flag_ts=0;break;
     44     default:break;
     45   }  
     46 }
     47 
     48 void fenglei()
     49 {
     50   int i;
     51   for(i=0;i++;i<16)
     52   { 
     53     value+=16;
     54     if(value > 255) 
     55       value=255;
     56     if(value < 0 )  
     57       value = 0;
     58     analogWrite(ENA,value);
     59   }
     60   
     61 }
     62 
     63 void do_test(int data)
     64 { 
     65   int temp = data;
     66   switch(temp)
     67   {
     68     case 2155864095: blink();Serial.print(1);tiaosu();break; //风速
     69     case 2155855935: blink();Serial.print(2);start_end();break; //开关
     70     case 2155857975: blink();Serial.print(3);break; //摇头
     71     case 2155860015: blink();Serial.print(4);break; //定时
     72     case 2155809525: blink();Serial.print(5);break; //静音
     73     case 2155868175: blink();Serial.print(6);fenglei();break; //风类
     74     case 16726215:   blink();Serial.print(2);start_end();break;   //ok
     75     case 16753245:   blink();Serial.print(1);tiaosu();break;      //1
     76     default: break;  
     77   }
     78 }
     79 
     80 void setup()  
     81   {  
     82       Serial.begin(57600);  
     83       irrecv.enableIRIn(); // 启动接收器  
     84       pinMode(IN1, OUTPUT);
     85       pinMode(IN2, OUTPUT);
     86       digitalWrite(IN1, HIGH);
     87       digitalWrite(IN2, LOW);
     88       pinMode(LED_BUILTIN, OUTPUT);
     89   }  
     90   
     91 void loop() {  
     92     if (irrecv.decode(&results))//解码成功,收到一组红外讯号   
     93     {  
     94       //Serial.println(results.value, HEX);//以16进制换行输出接收代码 
     95       Serial.println(results.value); //10进制输出
     96       do_test(results.value);
     97       irrecv.resume(); // 接收下一个值  
     98     }  
     99     delay(100);  
    100   } 
    807FE01F   风速   7
    807FC03F  开关
    807FC837  摇头
    807FD02F  定时
    807FF00F  风类
    807F0AF5 静音
    
    1    FFA25D    16753245
    2    FF629D    16736925
    3    FFE21D    16769565
    4    FF22DD    16720605
    5    FF02FD    16712445
    6    FFC23D    16761405
    7    FFE01F    16769055
    8    FFA857    16754775
    9    FF906F    16748655
    0    FF9867    16750695
    *    FF6897    16738455
    #    FFB04F    16756815
    上    FF18E7    16718055
    下    FF4AB5    16730805
    左    FF10EF    16716015
    右    FF5AA5    16734885
    ok    FF38C7    16726215
  • 相关阅读:
    leetcode33. Search in Rotated Sorted Array
    pycharm 设置sublime text3 monokai主题
    django class Meta
    leetcode30, Substring With Concatenation Of All Words
    Sublime text3修改tab键为缩进为四个空格,
    sublime text3 python打开图像的问题
    安装上imesupport输入法依然不跟随的解决办法,
    sublime text3 的插件冲突弃用问题,
    sublime text3 BracketHighlighter括号匹配的设置
    windows 下wget的使用
  • 原文地址:https://www.cnblogs.com/miaorn/p/13928934.html
Copyright © 2011-2022 走看看