亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Arduino編程

        2019-09-10 07:22:44
        電腦報 2019年6期
        關鍵詞:低電平高電平遙控器

        一、什么是紅外接收頭?

        紅外遙控器發(fā)出的信號是一連串的二進制脈沖碼。為了使其在無線傳輸過程中免受其他紅外信號的干擾,通常都是先將其調制在特定的載波頻率上,然后再經紅外發(fā)射二極管發(fā)射出去,而紅外線接收裝置則要濾除其他雜波,叧接收該特定頻率的信號并將其還原成二進制脈沖碼,也就是解調。

        二、工作原理

        內置接收管將紅外發(fā)射管發(fā)射出來癿光信號轉換為微弱的電信號,此信號經由IC內部放大器進行放大,然后通過自動增益控制、帶通濾波、解調變、波形整形后還原為遙控器發(fā)射出的原始編碼,經由接收頭的信號輸出腳輸入到電器上的編碼識別電路。

        三、紅外接收頭的引腳與連線

        紅外接收頭有三個引腳,用的時候將VOUT接到模擬口,GND接到實驗板上的GND,VCC接到實驗板上的+5V。

        四、紅外遙控實驗

        1.實驗器件

        紅外遙控器:1個

        紅外接收頭:1個

        LED燈:6個

        220Ω電阻:6個

        多彩面包線:若干

        2.實驗連線

        首先將板子連接好;接著將紅外接收頭按照上述方法接好,將VOUT接到數字11口引腳,將LED燈通過電阻接到數字引腳2,3,4,5,6,7。這樣就完成了電路部分的連接。

        3.實驗原理

        要想對某一遙控器進行解碼必須要了解該遙控器的編碼方式。本產品使用的遙控器的編碼方式為:NEC協(xié)議。下面就介紹一下NEC協(xié)議:

        ·NEC協(xié)議、特點:

        (1)8位地址位,8位命令位

        (2)為了可靠性地址位和命令位被傳輸兩次

        (3)脈沖位置調制

        (4)載波頻率38kHz

        (5)每一位的時間為1.125ms或2.25ms

        ·邏輯 0和1的定義,按鍵按下立刻松開的發(fā)射脈沖:

        顯示了NEC協(xié)議典型的脈沖序列。注意:這首先發(fā)送LSB(最低位)的協(xié)議。在上面的脈沖傳輸的地址為0x59,命令為0x16。一個消息是由一個9ms的高電平開始,隨后有一個4.5ms的低電平(返兩段電平組成引尋碼),然后有地址碼和命令碼。地址和命令傳輸兩次。第二次所有位都取反,可用于對所收到的消息確認使用。總傳輸時間是恒定的,因為每一點與它取反長度重復。如果你不感興趣,你可以忽略這個可靠性取反,也可以擴大地址和命令,以每16位按鍵按下一段時間才發(fā)射脈沖:

        一個命令發(fā)送一次,即使在遙控器上的按鍵仍然按下。當按鍵一直按下時,第一個110ms的脈沖與一樣,之后每110ms重復代碼傳輸一次。這個重復代碼是由一個9ms的高電平脈沖和一個2.25ms低電平及560μs的高電平組成。

        注意:脈沖波形進入一體化接收頭以后,因為一體化接收頭里要進行解碼、信號放大和整形,故要注意:在沒有紅外信號時,其輸出端為高電平,有信號時為低電平,故其輸出信號電平正好和發(fā)射端相反。接收端脈沖大家可以通過示波器看到,結合看到的波形理解程序。

        程序代碼

        #include <IRremote.h>

        int RECV_PIN = 11;

        int LED1 = 2;

        int LED2 = 3;

        int LED3 = 4;

        int LED4 = 5;

        int LED5 = 6;

        int LED6 = 7;

        long on1? = 0x00FFA25D;

        long off1 = 0x00FFE01F;

        long on2 = 0x00FF629D;

        long off2 = 0x00FFA857;

        long on3 = 0x00FFE21D;

        long off3 = 0x00FF906F;

        long on4 = 0x00FF22DD;

        long off4 = 0x00FF6897;

        long on5 = 0x00FF02FD;

        long off5 = 0x00FF9867;

        long on6 = 0x00FFC23D;

        long off6 = 0x00FFB047;

        IRrecv irrecv(RECV_PIN);

        decode_results results;

        // Dumps out the decode_results structure.

        // Call this after IRrecv::decode()

        // void * to work around compiler issue

        //void dump(void *v) {

        //? decode_results *results = (decode_results *)v

        void dump(decode_results *results) {

        int count = results->rawlen;

        if (results->decode_type == UNKNOWN)

        {

        Serial.println(“Could not decode message”);

        }

        else

        {

        if (results->decode_type == NEC)

        {

        Serial.print("Decoded NEC:");

        }

        else if (results->decode_type == SONY)

        {

        Serial.print("Decoded SONY:");

        }

        else if (results->decode_type == RC5)

        {

        Serial.print("Decoded RC5:");

        }

        else if (results->decode_type == RC6)

        {

        Serial.print("Decoded RC6:");

        }

        Serial.print(results->value, HEX);

        Serial.print(" (");

        Serial.print(results->bits, DEC);

        Serial.println("bits)");

        }

        Serial.print("Raw (");

        Serial.print(count, DEC);

        Serial.print("):");

        for (int i = 0; i < count; i++)

        {

        if ((i % 2) == 1) {

        Serial.print(results->rawbuf[i]*USECPERTICK, DEC);

        }

        else

        {

        Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC);

        }

        Serial.print(" ");

        }

        Serial.println(" ");

        }

        void setup()

        {

        pinMode(RECV_PIN, INPUT);

        pinMode(LED1, OUTPUT);

        pinMode(LED2, OUTPUT);

        pinMode(LED3, OUTPUT);

        pinMode(LED4, OUTPUT);

        pinMode(LED5, OUTPUT);

        pinMode(LED6, OUTPUT);

        pinMode(13, OUTPUT);

        Serial.begin(9600);

        irrecv.enableIRIn(); // Start the receiver

        }

        int on = 0;

        unsigned long last = millis();

        void loop()

        {

        if (irrecv.decode(&results))

        {

        // If it's been at least 1/4 second since the last

        // IR received, toggle the relay

        if (millis() - last > 250)

        {

        on = !on;

        //? ? ? ?digitalWrite(8, on? HIGH : LOW);

        digitalWrite(13, on? HIGH : LOW);

        dump(&results);

        }

        if (results.value == on1 )

        digitalWrite(LED1, HIGH);

        if (results.value == off1 )

        digitalWrite(LED1, LOW);

        if (results.value == on2 )

        digitalWrite(LED2, HIGH);

        if (results.value == off2 )

        digitalWrite(LED2, LOW);

        if (results.value == on3 )

        digitalWrite(LED3, HIGH);

        if (results.value == off3 )

        digitalWrite(LED3, LOW);

        if (results.value == on4 )

        digitalWrite(LED4, HIGH);

        if (results.value == off4 )

        digitalWrite(LED4, LOW);

        if (results.value == on5 )

        digitalWrite(LED5, HIGH);

        if (results.value == off5 )

        digitalWrite(LED5, LOW);

        if (results.value == on6 )

        digitalWrite(LED6, HIGH);

        if (results.value == off6 )

        digitalWrite(LED6, LOW);

        last = millis();

        irrecv.resume(); // Receive the next value

        }

        }

        五、程序功能

        對遙控器發(fā)射出來的編碼脈沖進行解碼,根據解碼結果執(zhí)行相應的動作。這樣大家就可以用遙控器遙控你的器件了,讓它聽你的指揮。

        注意:把 IRremote 文件夾放到 編譯器安裝目錄下的\Arduino\libraries里,不然編譯不過。例如我的:C:\Program Files\Arduino\libraries。

        猜你喜歡
        低電平高電平遙控器
        數字電路中“邏輯非”的用法辨析
        一種基于FPGA的PWM防錯輸出控制電路
        鐵道車輛高/低電平信號智能發(fā)生器設計
        時間遙控器
        爸媽有個“遙控器”
        TS-03C全固態(tài)PDM中波發(fā)射機開關機控制電路原理及故障分析
        科技傳播(2019年15期)2019-08-22 08:07:44
        行走的飛行遙控器
        2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
        DM 50KW中波廣播發(fā)射機欠推動故障分析
        PDM 1kW中波廣播發(fā)射機保護電路分析
        久久96国产精品久久久| 国产后入内射在线观看| 国产一区二区白浆在线观看| 日本添下边视频全过程| 无码骚夜夜精品| 一本无码av一区二区三区| 亚洲国内精品一区二区在线| 精品人妖一区二区三区四区| 色橹橹欧美在线观看视频高清 | 国产精品一区二区久久| 亚洲av一区二区国产精品| 第一九区另类中文字幕| 国产精品亚洲综合色区| 在线天堂中文字幕| 亚洲一区二区三区偷拍自拍| 电驱蚊液可以插一晚上吗| 奇米影视777撸吧| 午夜a福利| 日本女同视频一区二区三区| 人人妻人人澡人人爽国产一区| 国产精品成人99一区无码| 亚洲AV秘 片一区二区三区| 人妖在线一区二区三区| 99久久精品免费观看国产| 欧美激情在线不卡视频网站| 精品人妻一区二区三区蜜臀在线| 97人妻精品一区二区三区男同| 亚洲aⅴ在线无码播放毛片一线天 中国国语毛片免费观看视频 | 九九视频在线观看视频6| 国产91AV免费播放| 亚洲中文av中文字幕艳妇| 亚洲第一se情网站| 91精品91| 国产一区二区三区的区| 亚洲精品无码久久久| 亚洲一区二区三区av链接| 亚洲女同性恋第二区av| 一本色道久久爱88av| 老熟妇仑乱一区二区视頻| 国产自拍在线视频观看| 胸大美女又黄的网站|