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

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>帶OLED顯示屏的LED條形混色器

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

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

資料介紹

描述

嘿大家!

這是一個關于如何創建我的混色器版本的教程。

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

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

pYYBAGNof_qANauEAADrsJ7t_VM335.png
?

I2C

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

I2C 設備被賦予一個以十六進制(或十六進制)編寫的地址。我將使用的 OLED 使用 I2C 協議,地址為 0x3C。

注意:地址中的“0x”僅將其標識為十六進制值。

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

poYBAGNof_2AaRD_AAB69_n7DHg230.png
Arduino 板上的 I2C 引腳
?

設置

在將我的組件連接到 UNO 之前,我移除了操縱桿上的接頭并焊接了新的接頭,因為我對它在面包板上的方向感到不舒服。

前:

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

后:

pYYBAGNogAOAJRaNAAE2M11sUb8718.jpg
現在,操縱桿將直立在面包板上。
?

然后我開始將組件連接到我的 UNO 以測試它們。我使用的連接是:

操縱桿

地 - 地

VCC - +5V

VRx - A2

VRy - A1

西南 - D5

`

OLED (我用的是 UNO)

地 - 地

VCC - +5V

SCL/SCK - A5 (SCL)

SDA - A4 (SDA)

測試代碼

 //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);
}

注意:對于此代碼,您可以更改映射值或將其完全刪除,因為它只是一個測試代碼。

把它們放在一起

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

注意:當我使用 Nano 時,LED 燈條非常不穩定。我鼓勵您使用 MEGA 或 UNO 等電路板,以使電路保持穩定。

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

操縱桿

地 - 地

VCC - +5V

VRx - A2

VRy - A1

西南 - D5

`

OLED (我用的是 UNO)

地 - 地

VCC - +5V

SCL/SCK - A5 (SCL)

SDA - A4 (SDA)

`

新像素地帶

地 - 地

VCC - +5V

數據 - D6

poYBAGNogAeAB3OsAAOJBnC-b6I719.jpg
連接
?

?

pYYBAGNogAuAVKJYAAKRyqLEpb8420.jpg
我的電路
?

編碼

以下代碼是為 1 米長的 30 LED/米 Adafruit Neopixel 條0.91英寸OLED創建的。

注意LED最大值255 最小值0 ;_ _ _ 高于低于這些限制可能不會顏色強度產生影響。_

#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
 }
} 

結果

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

以下是一些結果圖片:

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
?

?


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

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 男女免费网站| 国产三级在线看| 99色婷婷| 九九热在线观看| 综合亚洲一区二区三区| 午夜色网站| 黄色一及毛片| 天天操夜夜爽| 91精品啪在线观看国产日本| 亚洲四虎影院| 免费日韩毛片| 天天插天天操天天射| 一区二区不卡视频在线观看| 四虎影视在线观看| 国产精品免费拍拍拍| 黄色成人免费观看| 狠狠色噜噜狠狠狠狠97老肥女 | 成人a毛片视频免费看| 奇米影视婷婷| 青青热久免费精品视频在线观看| 特级黄视频| 成人久久精品| 97精品伊人久久大香线蕉| 一级一片免费视频播放| 激情福利网| 国产香蕉在线精彩视频| 国产色秀视频在线观看| 欧美超级碰碰| kkkbo色综合| 久久9精品| 成年男人午夜片免费观看| 特黄特黄特色大片免费观看 | 亚洲午夜精品久久久久久人妖| 国产在线观看午夜不卡| 中国成人在线视频| 黄 色 毛片免费| 波多野结衣一级毛片| 婷婷97狠狠的狠狠的爱| 夜夜夜网| 日本一级成人毛片免费观看| 久久综合久久88|