Tinkercad Circuits:NeoPixel Ring 水流模擬

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

本文使用TinkerCad Circuits來示範NeoPixel Ring的應用:「水流模擬」

材料(Materials):
  1. Arduino UNO R3 x 1
  2. NeoPixel Ring x 1
  3. Small Breadboard x 1
  4. 1K ohm Resistor x 2
  5. Pushbutton x 2


電路(Circuit):

兩顆按鈕分別接在UNO的D3與D4,NeoPixel的In接在UNO的D2。

程式碼(The Code):
#include <Adafruit_NeoPixel.h>
#define F_BTN_PIN 3 // forward button
#define B_BTN_PIN 4 // backward button
#define PIN 2 // input pin Neopixel is attached to
#define NUMPIXELS 24 // number of neopixels in Ring
#define HALF_NUMPIXELS 12
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 50; // timing delay
int redColor = 255;
int dimRedColor = 64;
int fBtnState = 0;
int bBtnState = 0;
void setup() {
pixels.begin(); // Initializes the NeoPixel library.
Serial.begin(9600);
pinMode(F_BTN_PIN, INPUT);
pinMode(B_BTN_PIN, INPUT);
}
void loop() {
// read the state of the pushbutton value:
fBtnState = digitalRead(F_BTN_PIN);
bBtnState = digitalRead(B_BTN_PIN);
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (fBtnState == HIGH) {
//
// Light up each LED in clockwise direction
//
for(int i=0;i<NUMPIXELS;i++){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(redColor, 0, 0)); // Moderately bright green color.
pixels.show(); // This sends the updated pixel color to the hardware.
delay(delayval); // Delay for a period of time (in milliseconds).
}
for(int t = 0; t < 20; t++) {
for(int i=HALF_NUMPIXELS;i<NUMPIXELS;i+=2){
pixels.setPixelColor(i, pixels.Color(dimRedColor, 0, 0)); // Moderately bright green color.
}
for(int i=HALF_NUMPIXELS+1;i<NUMPIXELS;i+=2){
pixels.setPixelColor(i, pixels.Color(redColor, 0, 0)); // Moderately bright green color.
}
pixels.show();
delay(delayval);
for(int i=HALF_NUMPIXELS+1;i<NUMPIXELS;i+=2){
pixels.setPixelColor(i, pixels.Color(dimRedColor, 0, 0)); // Moderately bright green color.
}
for(int i=HALF_NUMPIXELS;i<NUMPIXELS;i+=2){
pixels.setPixelColor(i, pixels.Color(redColor, 0, 0)); // Moderately bright green color.
}
pixels.show();
delay(delayval);
}
for(int i=0;i<NUMPIXELS;i++){
// turn off led
pixels.setPixelColor(i, pixels.Color(0, 0, 0)); // Moderately bright green color.
pixels.show();
delay(delayval); // Delay for a period of time (in milliseconds).
}
} else if (bBtnState == HIGH) {
//
// Light up each LED in counter-clockwise direction
//
for(int i=NUMPIXELS-1;i>=0;i--){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(redColor, 0, 0)); // Moderately bright green color.
pixels.show(); // This sends the updated pixel color to the hardware.
delay(delayval); // Delay for a period of time (in milliseconds).
}
for(int t = 0; t < 20; t++) {
for(int i=0; i <= HALF_NUMPIXELS;i+=2){
pixels.setPixelColor(i, pixels.Color(dimRedColor, 0, 0)); // Moderately bright green color.
}
for(int i=1; i <= HALF_NUMPIXELS;i+=2){
pixels.setPixelColor(i, pixels.Color(redColor, 0, 0)); // Moderately bright green color.
}
pixels.show();
delay(delayval);
for(int i=1; i <= HALF_NUMPIXELS;i+=2){
pixels.setPixelColor(i, pixels.Color(dimRedColor, 0, 0)); // Moderately bright green color.
}
for(int i=0; i <= HALF_NUMPIXELS;i+=2){
pixels.setPixelColor(i, pixels.Color(redColor, 0, 0)); // Moderately bright green color.
}
pixels.show();
delay(delayval);
}
for(int i=NUMPIXELS-1;i>=0;i--){
// turn off led
pixels.setPixelColor(i, pixels.Color(0, 0, 0)); // Moderately bright green color.
pixels.show();
delay(delayval); // Delay for a period of time (in milliseconds).
}
}
}

示範影片(Demo Video):




範例連結(Example Link):
https://www.tinkercad.com/things/9p6iQyMyfO6

Tinkercad Circuits:LED 模擬走馬燈

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

本文使用TinkerCad Circuits來示範LED燈的應用:「走馬燈看板」。

材料(Materials):
  1. Arduino UNO R3 x 1
  2. Small Breadboard x 10
  3. 220 ohm Resistor x 10
  4. LED x 10


電路(Circuit):



十顆 LED 燈的陽極(Anode)分別接到 UNO 的數位腳位 2 ~ 11。

程式碼(The Code):
無使用陣列版本
int sPin = 2; // The base pin ID
int nLEDs = 10; // The number of LEDs
int delayMS = 100;
void setup()
{
for (int i = sPin; i < sPin + nLEDs; i++)
{
pinMode(i, OUTPUT);
}
}
void loop()
{
for(int i = sPin; i < sPin + nLEDs; i++)
{
digitalWrite(i, LOW);
delay(delayMS);
}
for(int i = sPin; i < sPin + nLEDs; i++)
{
digitalWrite(i, HIGH);
delay(delayMS);
}
}
view raw ArduinoLED.ino hosted with ❤ by GitHub
使用陣列版本
int ledPins[] = {2,3,4,5,6,7,8,9,10,11}; // The LED pins
int num = sizeof(ledPins) / sizeof(int);
int delayMS = 100;
void setup()
{
for (int i = 0; i < num ; i++)
{
pinMode(ledPins[i], OUTPUT);
}
}
void loop()
{
for (int i = 0; i < num ; i++)
{
digitalWrite(ledPins[i], LOW);
delay(delayMS);
}
for (int i = 0; i < num ; i++)
{
digitalWrite(ledPins[i], HIGH);
delay(delayMS);
}
}
示範影片(Demo Video):


範例連結(Example Link):
https://www.tinkercad.com/things/70zn6GiiAsQ

Tinkercad Circuits:溫度警報器(Temperature alarm)

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

本文使用TinkerCad Circuits來示範溫度感測器的應用:「溫度警報器」。當溫度越高時,蜂鳴器的聲音就越快發出聲響,LED亮越多顆。

材料(Materials):
  1. Arduino UNO R3 x 1
  2. Small Breadboard x 1
  3. Buzzer x 1
  4. 100 ohm Resistor x 1
  5. LED x 5
  6. 1K ohm Resistor x 5
  7. Temperature Sensor x 1


電路(Circuit):


程式碼(The Code):





示範影片(Demo Video):


範例連結(Example Link):