色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>帶OLED顯示屏的LED條形混色器

帶OLED顯示屏的LED條形混色器

2022-11-09 | zip | 0.14 MB | 次下載 | 2積分

資料介紹

描述

嘿大家!

這是一個(gè)關(guān)于如何創(chuàng)建我的混色器版本的教程

操縱桿是該項(xiàng)目中的主要控制形式。它控制條帶的 RGB 值,這決定了條帶上 LED 的顏色強(qiáng)度。OLED 顯示這些值。

您可以選擇包含自己的按鈕并對(duì)其進(jìn)行編碼以顯示某些模式(您可以在 NeoPixel 庫(kù)示例文件夾中找到一些簡(jiǎn)潔的模式)。

pYYBAGNof_qANauEAADrsJ7t_VM335.png
?

I2C

I2c 代表內(nèi)部集成電路它是一種總線(xiàn)接口連接協(xié)議,存在于需要短距離串行通信的設(shè)備中。

I2C 設(shè)備被賦予一個(gè)以十六進(jìn)制(或十六進(jìn)制)編寫(xiě)的地址。我將使用的 OLED 使用 I2C 協(xié)議,地址為 0x3C。

注意:地址中的“0x”僅將其標(biāo)識(shí)為十六進(jìn)制值。

Arduino 板中,I2C 引腳有所不同:

poYBAGNof_2AaRD_AAB69_n7DHg230.png
Arduino 板上的 I2C 引腳
?

設(shè)置

在將我的組件連接到 UNO 之前,我移除了操縱桿上的接頭并焊接了新的接頭,因?yàn)槲覍?duì)它在面包板上的方向感到不舒服。

前:

pYYBAGNogACARCsJAAE5VJgIpcc737.jpg
可以想象,如果連接到面包板/PCB,操縱桿將是橫向的。
?

后:

pYYBAGNogAOAJRaNAAE2M11sUb8718.jpg
現(xiàn)在,操縱桿將直立在面包板上。
?

然后我開(kāi)始將組件連接到我的 UNO 以測(cè)試它們。我使用的連接是:

操縱桿

地 - 地

VCC - +5V

VRx - A2

VRy - A1

西南 - D5

`

OLED (我用的是 UNO)

地 - 地

VCC - +5V

SCL/SCK - A5 (SCL)

SDA - A4 (SDA)

測(cè)試代碼

 //JOYSTICK TEST
#define joyX A2
#define joyY A1
const int SW_pin = 5; // digital pin connected to switch output
void setup() {
 Serial.begin(9600);
 pinMode(SW_pin, INPUT);
 digitalWrite(SW_pin, HIGH);
 Serial.begin(9600);
}
void loop() {
 int X;
 int Y;
 int Xval;
 int Yval;
 X = analogRead(joyX);
 Y = analogRead(joyY);
 Xval = map(X, 0, 1023, 0, 255);
 Yval = map(Y, 0, 1023, 0, 255); 
 Serial.print(Xval);
 Serial.print("|");
 delay(50);
 Serial.print(Yval);
 Serial.print("|")
 delay(50);
 Serial.print("Switch:  ");
 Serial.print(digitalRead(SW_pin));
 Serial.println("");
 delay(200);
}

注意:對(duì)于此代碼,您可以更改映射值或?qū)⑵渫耆珓h除,因?yàn)樗皇且粋€(gè)測(cè)試代碼。

把它們放在一起

在測(cè)試完所有組件后,我使用面包板將所有組件立即連接到 UNO。

注意:當(dāng)我使用 Nano 時(shí),LED 燈條非常不穩(wěn)定。我鼓勵(lì)您使用 MEGA 或 UNO 等電路板,以使電路保持穩(wěn)定。

連接是相同的,除了這里,我已經(jīng)包括了 LED 燈條。

操縱桿

地 - 地

VCC - +5V

VRx - A2

VRy - A1

西南 - D5

`

OLED (我用的是 UNO)

地 - 地

VCC - +5V

SCL/SCK - A5 (SCL)

SDA - A4 (SDA)

`

新像素地帶

地 - 地

VCC - +5V

數(shù)據(jù) - D6

poYBAGNogAeAB3OsAAOJBnC-b6I719.jpg
連接
?

?

pYYBAGNogAuAVKJYAAKRyqLEpb8420.jpg
我的電路
?

編碼

以下代碼是為 1 米長(zhǎng)的 30 LED/米 Adafruit Neopixel 條0.91英寸OLED創(chuàng)建的。

注意LED最大值255 最小值0 _ _ _ 高于低于這些限制可能不會(huì)對(duì)顏色強(qiáng)度產(chǎn)生影響_

#include 
#define LED_PIN    6
#define LED_COUNT 30
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
#define joyX A2
#define joyY A1
#include "U8glib.h" 
U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0); //Initialize OLED display
int r = 0; 
int g = 0;
int b = 0;//These three variables determine RGB values
int num = 1; //This variable helps switch between colors.
const int swpin = 5; //Defining switch button pin
int SW = 0;
void draw()
{
//READINGS-------------------------------------------------------------------
 int X;
 int Y;
 int Xval;
 int Yval;
 X = analogRead(joyX); //Reading off of VRx
 Y = analogRead(joyY); //Reading off of VRy
 Xval = map(X, 0, 1023, 10, 0); 
 Yval = map(Y, 0, 1023, 255, 0); //mapping values 
//COLOR SWITCHING-----------------------------------------------------------
 if(Xval < 9){   //This bit of code helps us switch between R, G and B.
   num = num + 1; 
   }
 if(Xval > 1){
   num = num - 1;
   }                  
//LIMITS-------------------------------------------------------------------
 if(num > 3){ //This bit creates a cycle between colors
   num = 1;    
 }
 if(num < 1){
   num = 3;
 }
//Red-value-----------------------------------------------------------------
char buf[8]; //Define buffer
if(r < 0){
 r = 255;
}
                  //Cycles red value
 if(r > 255){
 r = 0;
}
//Write text. (x, y, text) 
u8g.drawStr(1, 16, "R-");
u8g.drawStr(20, 16, itoa(r, buf, 10)); //itoa(int1, buffer, int2) converts int1(base int2) to ASCII format. Buffer stores this data.
//Green-value---------------------------------------------------------------
if(g < 0){
 g = 255;
}
             //Cycles green value
 if(g > 255){
 g = 0;
}
u8g.drawStr(64, 16, "G-");
u8g.drawStr(84, 16, itoa(g, buf, 10));
//Blue-value----------------------------------------------------------------
if(b < 0){
 b = 255;
}
              //Cycles blue value
if (b > 255){
 b = 0;
}
u8g.drawStr(1, 32, "B-");
u8g.drawStr(20, 32, itoa(b, buf, 10));
//LINE (x1, y1, x2, y2)(This is optional)-----------------------------------
u8g.drawLine(1, 17, 128, 17);
//draw a line (x1, y1, x2, y2)
//SET COLOR-----------------------------------------------------------------
u8g.drawStr(64, 32, "Color-");
 switch(num) {
   /*This function converts the num values to R, G and B strings according to the current color being edited.
     This code makes sure that when editing value intensity, the 'Color' field actually switches to the correct color(R, G or B).*/
   case 1  :
       u8g.drawStr(115, 32, "R");
         if(Yval > 230){
             r = r+1;
         } 
         if(Yval < 20){
             r = r-1;
         } 
       break;
   case 2  :
       u8g.drawStr(115, 32, "G");
         if(Yval > 230){
            g = g+1;
           } 
         if(Yval < 20){
            g = g-1;
           } 
       break;
   case 3  :
       u8g.drawStr(115, 32, "B");
         if(Yval > 230){
            b = b+1;
             } 
             if(Yval < 20){
             b = b-1;
             } 
       break;  
 }
}
void setup() {
 u8g.setFont(u8g_font_unifont); //Set text font
 pinMode(swpin, INPUT_PULLUP); //Define the pin mode for the switch button
 strip.begin();   //Initiate LED strip       
 strip.show();    //Update Strip
 strip.setBrightness(50); //Set the brightness of each NeoPixel
}
void loop() {
 u8g.firstPage();
 do {draw();
 } while (u8g.nextPage()); //Draw loop (OLED)
 delay(10); //Delay before each loop begins
 if(SW < 1){ //Ensures that the strip stays on at all times; you can use the int SW and link it to input swpin to assign a different function to it.
    colorWipe(strip.Color(r,   g,   b), 5);//The variables r g and b are linked to the values you will see on the OLED. The number '5' defines the number of seconds it takes to fill up the entire strip (Neopixels turn on one at a time in this function). 
   }
}
void colorWipe(uint32_t color, int wait) { //Defining a new function to display the color. 
 for(int i=0; i// For each pixel in strip:
   strip.setPixelColor(i, color);         //  Set pixel's color 
   strip.show();                          //  Update strip to match
   delay(wait);                           //  Pause for a moment
 }
} 

結(jié)果

如果你的連接和代碼都正確,你的混色器就完成了!在垂直方向移動(dòng)操縱桿可增加/減少每種原色的強(qiáng)度,水平移動(dòng)可在原色之間切換。您可以將所有東西附加到 PCB 或添加分配給按鈕的酷圖案,使其成為一個(gè)更加自定義的項(xiàng)目!

以下是一些結(jié)果圖片:

pYYBAGNogBKAFU-AAAchL0pzfDM766.jpg
紫色:R - 119,G - 3,B - 255
?

?

poYBAGNogBaAWBMJAAdBDfm8Fh0521.jpg
石灰黃:R - 250、G - 233、B - 5
?

?

poYBAGNogByAM4IrAArQXJXJcy8416.jpg
白色:R - 255、G - 255、B - 255
?

?

pYYBAGNogCKABkTLAAmkQoJDpJ4989.jpg
紅色:R - 255,G - 0,B - 0
?

?

pYYBAGNogCiAYZOLAArUN9q9cyw366.jpg
粉紅色:R - 255,G - 48,B - 141
?

?

pYYBAGNogDKAZlBaAAqn0EADCMw452.jpg
橙色:R - 252,G - 48,B = 0
?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1美的電磁爐維修手冊(cè)大全
  2. 1.56 MB   |  5次下載  |  5 積分
  3. 2SMD LED選型手冊(cè) 貼片燈珠
  4. 5.47 MB   |  3次下載  |  免費(fèi)
  5. 3基于PLC的拉絲機(jī)張力控制系統(tǒng)研究
  6. 0.14 MB   |  2次下載  |  5 積分
  7. 4加密芯片的一種破解方法和對(duì)應(yīng)加密方案改進(jìn)設(shè)計(jì)
  8. 0.29 MB   |  1次下載  |  免費(fèi)
  9. 5萬(wàn)用表UT58A原理圖
  10. 0.09 MB   |  1次下載  |  5 積分
  11. 6多功能MPU芯片GC9005數(shù)據(jù)手冊(cè)
  12. 2.67 MB   |  1次下載  |  免費(fèi)
  13. 7面向NXP i.MX8處理器的電源解決方案
  14. 47.47KB   |  次下載  |  免費(fèi)
  15. 8LP8733-Q1和LP8732-Q1為DRA78x和TDA3x供電的用戶(hù)指南
  16. 61.31KB   |  次下載  |  免費(fèi)

本月

  1. 1使用單片機(jī)實(shí)現(xiàn)七人表決器的程序和仿真資料免費(fèi)下載
  2. 2.96 MB   |  44次下載  |  免費(fèi)
  3. 2UC3842/3/4/5電源管理芯片中文手冊(cè)
  4. 1.75 MB   |  20次下載  |  免費(fèi)
  5. 3華瑞昇CR216芯片數(shù)字萬(wàn)用表規(guī)格書(shū)附原理圖及校正流程方法
  6. 0.74 MB   |  14次下載  |  3 積分
  7. 4DMT0660數(shù)字萬(wàn)用表產(chǎn)品說(shuō)明書(shū)
  8. 0.70 MB   |  13次下載  |  免費(fèi)
  9. 53314A函數(shù)發(fā)生器維修手冊(cè)
  10. 16.30 MB   |  13次下載  |  免費(fèi)
  11. 6TPS54202H降壓轉(zhuǎn)換器評(píng)估模塊用戶(hù)指南
  12. 1.02MB   |  9次下載  |  免費(fèi)
  13. 7STM32F101x8/STM32F101xB手冊(cè)
  14. 1.69 MB   |  8次下載  |  1 積分
  15. 8感應(yīng)筆電路圖
  16. 0.06 MB   |  7次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935119次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73807次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65987次下載  |  10 積分
主站蜘蛛池模板: 欧美黄色一级| 久久精品国产亚洲AV妓女不卡| 公和熄洗澡三级中文字幕| 久久久伊人影院| 亚洲成人日韩| 国产亚洲精品久久精品6| 色多多涩涩屋下载软件| 成电影人免费网站| 青青涩射射| 抽插内射高潮呻吟V杜V| 人人做人人干| 国语精彩对白2021| 色欲色香天天天综合| 亚洲日本激情| xxxjapanese丰满奶水| 免费麻豆国产黄网站在线观看| 天天拍拍国产在线视频| 动漫成年美女黄漫网站| 全彩黄漫火影忍者纲手无遮挡| caoporn免费视频在线| 国产一卡 二卡三卡四卡无卡乱码视频| 久久精品视频免费| 一个人在线观看免费高清视频在线观看 | 饥渴的40岁熟妇完整版在线| 亚洲不卡高清免v无码屋| 好大快用力深一点h视频| 一边喂奶一边做边爱| 久久综合九色综合国产| 97免费视频观看| 全球真实小U女视频合集| 国产精品久久久久久久久久久 | 欧美日韩看看2015永久免费| 成 人 动漫3d 在线看| 我们日本在线观看免费动漫下载| 国产亚洲精品第一区香蕉| 一本之道高清在线观看一区 | 久久久久久久电影| 97影院理论午夜伦不卡偷| 日本美女论坛| MATURETUBE乱妇| 我和妽妽在厨房里的激情区二区|