在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣用NES控制器作為燈的開關

454398 ? 來源:工程師吳畏 ? 2019-08-26 09:46 ? 次閱讀

第1步:設備

1 x原始NES控制器 - 我從當地的二手商店挑選了一個

1 x Arduino UNO - 我使用了DuinoTECH經典(UNO)

5 - 7 x公 - 公跳線 - 我建議使用各種顏色使故障排除更容易(我總是使用黑色表示GND,紅色表示+ 5V然后旋轉通過彩虹的顏色)

1 x LED(可選)

1 x 330歐姆電阻(可選)

1 x面包板(可選)

USB電纜

安裝了Arduino IDE的計算機

步驟2:連接

怎樣用NES控制器作為燈的開關

黑線從Arduino上的 GND 到 Pin 1 NES控制器插頭

紅線從 + 5V 到 Pin 7

橙色線從 D5 到 Pin 2

黃線從 D6 到 Pin 3

綠線從 D7 到第4針

藍色電線從 D13 到LED 陽極

330歐姆電阻來自LED 陰極到 GND (使用另一根黑線) - 我認為大多數Arduino UNO板都有一個小型表面貼裝LED,它連接到D13,因此連接另一個LED是可選的。

第一張圖顯示了NES控制器插頭 - 點擊每個插座/引腳以找出每個功能。男性 - 男性跳線完美地插入插座。

第3步:按鈕狀態和去抖動

如果你打算使用兩個這個NES控制器燈開關的按鈕(例如開始用于開啟和選擇用于關閉)這將非常容易從我之前的教練那里調整NES控制器鋼琴素描很容易:

標簽D13為 led

刪除 nes = 255 行

刪除其他按鈕功能

更改 bitRead( nes,4)== 0 對 digitalWrite(led,HIGH)的音調命令

更改 bitRead(nes,5) == 0音調命令到 digitalWrite(led,LOW)

#define nesClock 5 // label pinout

#define nesLatch 6

#define nesData 7

#define led 13

byte nes = 0; // global variable

void setup() {

// put your setup code here, to run once:

Serial.begin (9600); // serial terminal speed

pinMode (nesData, INPUT); // set up pins

pinMode (nesClock, OUTPUT);

pinMode (nesLatch, OUTPUT);

pinMode (led, OUTPUT);

digitalWrite (led, LOW);

}

void loop() {

// put your main code here, to run repeatedly:

nes = nesRead ();

if (bitRead (nes, 4) == 0){

digitalWrite (led, HIGH);

}

if (bitRead (nes, 5) == 0){

digitalWrite (led, LOW);

}

delay (180);

}

byte nesRead (){ // “bit banging”

byte value = 0;

digitalWrite (nesLatch, HIGH);

delayMicroseconds(5);

digitalWrite (nesLatch, LOW);

for (int i=0; i《8; i++) {

digitalWrite (nesClock, LOW);

value |= digitalRead (nesData) 《《 (7 - i);

digitalWrite (nesClock, HIGH);

}

return (value);

}

然而,我花了一些時間來鍛煉如何僅使用START按鈕。我修改了Arduino.cc去抖動教程中的代碼 - 去抖動在這個草圖中是必不可少的(刪除 debounceDelay 和 lastDebounceTime 會產生非常不可預測的效果(有時LED會亮,有時候它是關閉的,有時它是FLASHING并且草圖的連續監視器部分正在加班以跟上)。

int ledState = HIGH; // current state of LED pin

int buttonState; // see below in loop()

int lastButtonState = LOW; // last time START was pressed

long lastDebounceTime = 0; // for debouncing switch

long debounceDelay = 200; // for debouncing switch void loop() { // put your main code here, to run repeatedly:

buttonState = bitRead (nes, 4); // START pressed

nesRead ();

if (buttonState == 0 && lastButtonState == LOW && millis() - lastDebounceTime 》 debounceDelay){

if (ledState == HIGH){

ledState = LOW; // LED is OFF

//Serial.println (“OFF”);

}

else {

ledState = HIGH; // LED is ON

//Serial.println (“ON”);

}

lastDebounceTime = millis ();

}

digitalWrite (led, ledState );

lastButtonState = buttonState;

不幸的是我曾用過的代碼比特爆炸在我的NES控制器中,鋼琴草圖在這種情況下不起作用 - 參見步驟4.

步驟4:位綁定

當按下按鈕時,NES控制器使用4021移位寄存器來創建數據脈沖 - 單擊圖片中的按鈕可查看按下每個按鈕時創建的數據,或嘗試從 bradsprojects.com-運行此草圖,Arduino捕獲脈沖并通過查找每個脈沖中的0來解釋它們。/p》

我用來捕獲NES控制器數據的代碼與我的其他NES控制器Instructables中使用的代碼不同。我無法調整Gordon McComb的*方法來執行此任務(使用單個 NES按鈕來點亮 ON 和 OFF ) - LED像經典的Blink sketch 一樣連續閃爍。我使用了一個與 Loop()函數分開的函數,我將其稱為 nesRead() - 這個使用的位移方式略有不同 - 我先讀了一下它在 arduino.cc。

void nesRead (){ //function to read data from NES controller nes = 0;

digitalWrite (nesLatch, LOW);

digitalWrite (nesClock, LOW);

digitalWrite (nesLatch, HIGH);

delayMicroseconds (2);

digitalWrite (nesLatch, LOW);

nes = digitalRead (nesData);

for (int i = 1; i 《=7; i ++){

digitalWrite (nesClock, HIGH);

delayMicroseconds (2);

nes = nes 《《1; // bitshift

nes = nes + digitalRead (nesData);

delayMicroseconds (4);

digitalWrite (nesClock, LOW);

}

}

*由Gordon McComb McGraw Hill 2013撰寫的“Arduino Robot Bonanza”中的Teachbot游戲手柄控制器草圖。

第5步:完整草圖

#define nesClock 5 // label pinout

#define nesLatch 6

#define nesData 7

#define led 13

int ledState = HIGH; // current state of LED pin

int buttonState; // see below in loop()

int lastButtonState = LOW; // last time START was pressed

long lastDebounceTime = 0; // for debouncing switch

long debounceDelay = 200; // for debouncing switch

byte nes = 0; // label 8 bit data from controller

/* Setup */

void setup() {

// put your setup code here, to run once:

delay (1000);

// Serial.begin (9600);

pinMode (nesLatch, OUTPUT); // set up pins

pinMode (nesClock, OUTPUT);

pinMode (nesData, INPUT);

pinMode (led, OUTPUT);

}

void nesRead (){ //function to read data from NES controller

nes = 0;

digitalWrite (nesLatch, LOW);

digitalWrite (nesClock, LOW);

digitalWrite (nesLatch, HIGH);

delayMicroseconds (2);

digitalWrite (nesLatch, LOW);

nes = digitalRead (nesData);

for (int i = 1; i 《=7; i ++){

digitalWrite (nesClock, HIGH);

delayMicroseconds (2);

nes = nes 《《1; // bitshift

nes = nes + digitalRead (nesData);

delayMicroseconds (4);

digitalWrite (nesClock, LOW);

}

}

void loop() {

// put your main code here, to run repeatedly:

buttonState = bitRead (nes, 4); // START pressed

nesRead ();

if (buttonState == 0 && lastButtonState == LOW && millis() - lastDebounceTime 》 debounceDelay){

if (ledState == HIGH){

ledState = LOW; // LED is OFF

//Serial.println (“OFF”);

}

else {

ledState = HIGH; // LED is ON

//Serial.println (“ON”);

}

lastDebounceTime = millis ();

}

digitalWrite (led, ledState );

lastButtonState = buttonState; // Current state (i.e. ON or OFF) of START is now lastButtonState

}

第6步:開啟和關閉燈光

如果您有經驗,請通過兼容Arduino的繼電器連接Nintendo主題燈。..。..

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開關
    +關注

    關注

    19

    文章

    3142

    瀏覽量

    93768
  • 控制器
    +關注

    關注

    112

    文章

    16418

    瀏覽量

    178785
收藏 人收藏

    評論

    相關推薦

    物聯網單控制器:路燈單控制更智能,更好用

    物聯網單控制器:路燈單控制更智能,更好用
    的頭像 發表于 01-15 16:17 ?75次閱讀
    物聯網單<b class='flag-5'>燈</b><b class='flag-5'>控制器</b>:路燈單<b class='flag-5'>燈</b><b class='flag-5'>控制</b>更智能,更好用

    控制:物聯網單控制器將成為行業主流

    控制:物聯網單控制器將成為行業主流
    的頭像 發表于 01-15 16:15 ?64次閱讀
    單<b class='flag-5'>燈</b><b class='flag-5'>控制</b>:物聯網單<b class='flag-5'>燈</b><b class='flag-5'>控制器</b>將成為行業主流

    采用AT89C52單片機作為路燈控制系統的支路控制器

    本系統采用AT89C52單片機作為路燈控制系統的支路控制器,采用光敏二極管 檢測光強度、紅外對管檢測移動物體經過的位置等方法控制路燈按預定要求自動
    發表于 11-24 14:37 ?0次下載

    創新型智慧桿綜合應用解決方案 路燈單控制器

    創新型智慧桿綜合應用解決方案 路燈單控制器
    的頭像 發表于 11-13 08:31 ?274次閱讀
    創新型智慧<b class='flag-5'>燈</b>桿綜合應用解決方案 路燈單<b class='flag-5'>燈</b><b class='flag-5'>控制器</b>

    一文讀懂單控制器工作原理

    一文讀懂單控制器工作原理
    的頭像 發表于 11-11 13:13 ?299次閱讀
    一文讀懂單<b class='flag-5'>燈</b><b class='flag-5'>控制器</b>工作原理

    智慧城市路燈——聯網單控制系統,單控制器

    智慧城市路燈——聯網單控制系統,單控制器
    的頭像 發表于 11-11 12:52 ?408次閱讀
    智慧城市路燈——<b class='flag-5'>燈</b>聯網單<b class='flag-5'>燈</b><b class='flag-5'>控制</b>系統,單<b class='flag-5'>燈</b><b class='flag-5'>控制器</b>

    智慧照明 智慧控之核心硬件——單控制器

    智慧照明 | 智慧控之核心硬件——單控制器
    的頭像 發表于 11-11 12:44 ?277次閱讀
    智慧照明   智慧<b class='flag-5'>燈</b>控之核心硬件——單<b class='flag-5'>燈</b><b class='flag-5'>控制器</b>

    怎樣用THS3201實現輸出功率可調?

    怎樣用THS3201實現輸出功率可調?
    發表于 08-26 08:28

    什么是開關控制器?有哪些特點?

    開關控制器作為一種電子設備,在現代自動化控制技術中扮演著至關重要的角色。其主要功能在于控制電路的通斷,進而實現對各種設備的
    的頭像 發表于 06-05 15:55 ?1605次閱讀

    PID控制器開關控制器的區別

    在工業自動化控制系統中,PID控制器開關控制器是兩種常見的控制策略。它們各自具有獨特的工作原理、應用場景和優缺點。本文旨在詳細探討PID
    的頭像 發表于 06-05 15:50 ?915次閱讀

    stm32f100怎樣用重映射功能?

    的是stm32f100c8t6b芯片,現在想用將PB1映射為TIM1_CH3N,在調用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)時, GPIO_PinAFConfig和GPIO_AF_TIM1都沒定義,stm32f100
    發表于 05-07 06:06

    智慧桿靈魂人物-單控制器

    熙枚物聯在采用HPLC單控制器智慧路燈系統中,根據HPLC通訊的優勢,對功能進行了優化。
    的頭像 發表于 04-24 11:34 ?474次閱讀
    智慧<b class='flag-5'>燈</b>桿靈魂人物-單<b class='flag-5'>燈</b><b class='flag-5'>控制器</b>

    智能單控制器 計訊物聯TL112

    智能單控制器集成了先進技術的照明控制設備,它極大地改變了傳統照明方式,并使之更加智能化。計訊物聯智能單控制器TL112廣泛應用于道路、景
    的頭像 發表于 04-07 10:58 ?387次閱讀
    智能單<b class='flag-5'>燈</b><b class='flag-5'>控制器</b> 計訊物聯TL112

    4G CAT.1單控制器 計訊物聯TL112

    傳統的照明控制方式往往需要通過開關進行操作,而單控制器的出現改變了這一局面。計訊物聯單控制器
    的頭像 發表于 03-28 15:10 ?412次閱讀
    4G CAT.1單<b class='flag-5'>燈</b><b class='flag-5'>控制器</b> 計訊物聯TL112

    控制器工作原理是什么?單控制器是如何控制燈具的?

    控制器工作原理是什么?單控制器是如何控制燈具的? 單
    的頭像 發表于 02-03 11:38 ?2358次閱讀
    主站蜘蛛池模板: 日本加勒比在线播放| 四虎永久影院永久影库 | 一级做a爱片久久毛片| 毛片视频网址| 在线网站你懂| 新激情五月| 视频一区中文字幕| 色网址在线观看| 黄色男人的天堂| 国产情侣露脸| 视色4setv.com| 色视频免费版高清在线观看| 九九热re| 四虎影永久在线观看网址| 一级做a爱片特黄在线观看免费看| 亚洲va久久久噜噜噜久久狠狠| 生活片毛片| 看真人一级毛片| 丁香婷婷六月天| 天天插天天干| 在线视频网址| 男女艹逼软件| 免费视频亚洲| 亚欧免费视频| 女人张腿让男子桶免费动态图| 丁香啪啪天堂激情婷婷| 天天插天天射天天干| 阿v视频在线观看免费播放| 国产chinesehd精品酒店| 久久手机看片你懂的日韩1024| 1024国产手机视频基地| 轻点灬大ji巴太粗太长了啊h| 亚洲三级理论| 女人精aaaa片一级毛片女女| 99久久网站| www奇米影视com| 99热最新在线| 青草青视频在线观看| 在线免费国产| 天天插视频| 看5xxaaa免费毛片|