久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 制作分享:女神生日不知道送什么禮物,不如手工打造一顆arduino心愿球 [打印本頁]

作者: arduinoxyz    時間: 2019-3-29 18:04
標題: 制作分享:女神生日不知道送什么禮物,不如手工打造一顆arduino心愿球
本帖最后由 arduinoxyz 于 2019-3-29 18:48 編輯

心愿球
由黃銅棒制成,采用自由球形態連接 18 顆發光 LED。制作出來的實物圖如下:

硬件材料
1*黃銅棒
18*貼片 LED
1*ATmega8L 芯片
1*CR2032 紐扣電池
1*開關
天體
主要挑戰是用黃銅棒彎成圓形,看起來像一個天體。我用 6 根銅棒豎直排列(經度)和 3 根銅棒
水平排列(緯度)構建一個球。這樣子就總共有 18 個交叉點用于焊接 LED。在球體的底部有一個
環形開口,為的是最終可以更好的放入芯片、電池等元器件。

首先,把銅棒彎成圓形。我最開始找到一個直徑為 50 毫米的鐵罐,可以在彎曲時用底蓋固定銅
棒。彎曲銅棒后,把其剪斷并把兩端焊接在一起,形成一個漂亮的環。在一張紙上畫出相同的形
狀,可以幫助你匹配最完美的圓形。為了制作更小的圓環,我使用了其他直徑的瓶。使用與你的
直徑相匹配的東西,身邊上到處都是圓形的東西!

接下來,我把 LED 焊接到三個 50mm 環上。我在一張紙上畫了一個模板。我采用是黃色和紅色
LED。黃色和紅色,因為它比藍色或白色更節能。

接著,我把帶有 LED 的環焊接到基環上。我用一塊膠帶把基環固定在桌子上,修剪了垂直環的底
部并把它們焊接到環上,形成了一個皇冠。第一個環焊接成一體,第二個和第三個環切成兩半,
形成球體的平頂。

最后一步是最讓人沮喪和耗時的。把 LED 與彎曲桿相互連接以形成水平環。我把剩下的環一個一
個地切開,以適應垂直環之間的空間并求佛一樣地焊接。

我想到一種放置 LED 的簡單方法。 兩個 LED 在鄰近的垂直環(地面)上彼此面對,它們與一根彎
曲的桿連接,該桿是水平環(電源線)的一部分。最終得到 18 個 LED,分為 9 個部分。

溫馨提醒:經常測試 LED 是否仍是好的,否則你需要在最后重做這件事,這是一種可怕的又振奮
人心的測試。
如果你只是希望它發光并且不關心任何動畫。你可以立即停止閱讀,把 CR2032 紐扣電池和開關放
入內部。通過 68Ω 限流電阻把 LED 與電池連接,就可以使其發光!把電池焊接到黃銅線時,請確
保不要過熱,否則可能會導致電池過熱。

如果你像我一樣,愛 Arduino 并希望讓它變得聰明并且有一點樂趣,讓我們把微控制器放入其
中!我使用的是 ATmega8L 芯片——與 Arduino NANO 相同的封裝,但內存更少,功耗更低。L 意
味著它具有 2.7 - 5V 的寬工作電壓范圍,這在使用 3V 紐扣電池時非常棒。另一方面,由于它是
TQF32 封裝,因此焊接到銅棒上是一個不小的挑戰,但外觀和效果都很好。


電路原理圖如下:


Arduino源代碼
  1. #define LEDS 9

  2. byte leds[] = {
  3.   5, 19, 17, // bottom
  4.   6, 1, 15, // middle
  5.   8, 21, 13 // top
  6. };

  7. #define ON true
  8. #define OFF false

  9. // variables for pattern timing
  10. unsigned long currentMillis = millis();
  11. unsigned long previousMillis = 0;
  12. unsigned long millisInterval = 3
  13. 00;

  14. // variables for software PWM
  15. unsigned long currentMicros = micros();
  16. unsigned long previousMicros = 0;
  17. // this is the frequency of the sw PWM
  18. // frequency = 1/(2 * microInterval)
  19. unsigned long microInterval = 250;

  20. const byte pwmMax = 100;

  21. // fading (for the timing)
  22. int fadeIncrement = 1;

  23. // typedef for properties of each sw pwm pin
  24. typedef struct pwmPins {
  25.   int pin;
  26.   int pwmValue;
  27.   bool pinState;
  28.   int pwmTickCount;
  29. } pwmPin;

  30. // create the sw pwm pins
  31. // these can be any I/O pin
  32. // that can be set to output!
  33. const int pinCount = 9;
  34. const byte pins[pinCount] = {
  35.   5, 19, 17, // bottom
  36.   6, 1, 15, // middle
  37.   8, 21, 13 // top
  38. };

  39. pwmPin myPWMpins[pinCount];

  40. // function to "setup" the sw pwm pin states
  41. // modify to suit your needs
  42. // this creates an alternating fade pattern
  43. void setupPWMpins() {
  44.   for (int index=0; index < pinCount; index++) {
  45.     myPWMpins[index].pin = pins[index];

  46.     // mix it up a little bit
  47.     // changes the starting pwmValue for odd and even
  48.     if (index % 2)
  49.       myPWMpins[index].pwmValue = 25;
  50.     else
  51.       myPWMpins[index].pwmValue = 75;

  52.     myPWMpins[index].pinState = ON;
  53.     myPWMpins[index].pwmTickCount = 0;

  54.     // unlike analogWrite(), this is necessary
  55.     pinMode(pins[index], OUTPUT);
  56.   }
  57. }

  58. void pwmFadePattern() {
  59.   // go through each sw pwm pin, and increase
  60.   // the pwm value. this would be like
  61.   // calling analogWrite() on each hw pwm pin
  62.   for (int index=0; index < pinCount; index++) {
  63.     myPWMpins[index].pwmValue += fadeIncrement;
  64.     if (myPWMpins[index].pwmValue > 100)
  65.       myPWMpins[index].pwmValue = 0;
  66.   }
  67. }

  68. void handlePWM() {
  69.   currentMicros = micros();
  70.   // check to see if we need to increment our PWM counters yet
  71.     if (currentMicros - previousMicros >= microInterval) {
  72.     // Increment each pin's counter
  73.     for (int index=0; index < pinCount; index++) {
  74.     // each pin has its own tickCounter
  75.       myPWMpins[index].pwmTickCount++;

  76.     // determine if we're counting on or off time
  77.       if (myPWMpins[index].pinState == ON) {
  78.         // see if we hit the desired on percentage
  79.         // not as precise as 255 or 1024, but easier to do math
  80.         if (myPWMpins[index].pwmTickCount >= myPWMpins[index].pwmValue) {
  81.           myPWMpins[index].pinState = OFF;
  82.         }
  83.       } else {
  84.         // if it isn't on, it is off
  85.         if (myPWMpins[index].pwmTickCount >= pwmMax) {
  86.           myPWMpins[index].pinState = ON;
  87.           myPWMpins[index].pwmTickCount = 0;
  88.         }
  89.       }
  90.       // could probably use some bitwise optimization here, digitalWrite()
  91.       // really slows things down after 10 pins.
  92.       digitalWrite(myPWMpins[index].pin, myPWMpins[index].pinState);
  93.     }
  94.     // reset the micros() tick counter.
  95.     digitalWrite(13, !digitalRead(13));
  96.     previousMicros = currentMicros;
  97.   }
  98. }

  99. void setup() {
  100.   setupPWMpins();
  101.   //pinMode(13, OUTPUT);
  102. }

  103. void loop() {
  104.   // this is the magic for sw pwm
  105.   // need to call this anytime you
  106.   // have a long operation
  107.   handlePWM();

  108.   // check timer for fading pattern
  109.   // this would be the same
  110.   // if we used analogWrite()
  111.   currentMillis = millis();
  112.   if (currentMillis - previousMillis >= millisInterval) {
  113.     // moved to own funciton for clarity
  114.     pwmFadePattern();

  115.     // setup clock for next tick
  116.     previousMillis = currentMillis;
  117.   }
  118. }
復制代碼


作者: 莊周的小燕    時間: 2019-4-10 12:36
好玩有趣的arduino交互設計




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美美女视频 | 九九精品网 | 久久免费精品 | 国模一区二区 | 伊人久久艹 | aaa级片| 美女网站视频在线观看 | 国产成人免费观看 | 香蕉视频在线播放 | 午夜精品视频 | 99在线播放| 九九热这里有精品 | 成人在线小视频 | 久久精品亚洲 | 成人在线播放视频 | 超碰在线免费 | 国产成人小视频 | 免费的av| av在线播放网站 | 超碰偷拍| 国产一区二区三区在线视频 | 国产亚洲欧美在线 | 在线日韩 | 吃奶动态图 | 久久久xxx| 国产午夜视频在线观看 | 99精品网站 | 日韩一区不卡 | 亚洲永久免费视频 | 午夜网站在线观看 | 综合在线视频 | 91欧美日韩 | 欧美日韩成人一区二区三区 | 国产网站视频 | 日韩精品视频免费 | www.色婷婷| 超碰在线99 | 国产一区久久 | 日韩一级视频 | 长河落日 | 风间由美一区二区三区 |