
Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01

Een interactieve boom met een LED-ring aan de bovenkant, een zoemer om geluid te maken en een aanraaksensor aan de binnenkant die van kleur verandert als je hem aanraakt. Om dit leuke kleine ding te maken, heb je het volgende nodig:
Elektronica: - 1x Arduino Uno
- 15x kabels
- 1x soldeerbout met ronde punt
- 1x Adafruit 8-key captive touch (CAP1188)
- 1x Arduino-voedingskabel
- 1x 8 LED-ring
- 1x zoemer
- 1x heet lijmpistool
- Download de bibliotheek van CAP1188
- Download de bibliotheek van Adafruit Neopixel
Extra (omhulsel):
- 1x boomstronk
- 1x stokje voor binnen
- houten plateau om alles op/in te plaatsen
- Gevulde dieren vulling voor buiten
Je kunt ook iets anders als buiten gebruiken, wees creatief!
Laten we nu beginnen…
Stap 1: Stap 1: LED-ring met Captive Touch

Als je geluk hebt, heeft je LED-ring al pinnen eraan. Zo niet, dan is het tijd om te solderen!
De dingen die we voor dit project zullen gebruiken zijn:
- DI (digitale ingang, pin 6~
- 5V (voor stroom, 5V-pin)
- GND (de grond, GND-pin)
Dat is de LED-ring voor nu. Nu de gevangene aanraking.
Plaats het in een breadboard en sluit alles als volgt aan: SDA/MISO in pin (analog in) A4SCK in pin (analog in) A5VIN in (power) 5VGND in een GND pin1x kabel op C1 (op de Captive touch zelf)
Om nu te testen, upload de volgende code naar je Arduino:
// Julia Emmink// Licht- en aanraakcode voor de interactieve boom 19/// Gemaakt met behulp van de Adafruit Neopixel en Adafruit captive touch (CAP1188) (moet worden geïnstalleerd) en de LED knippert zonder vertraging
// NEOPIXEL ~~~~~~~~~~~~~~~~~~
#erbij betrekken
#define PIXELSPIN 6 // Waar je de LED Ring hebt aangesloten
#define NUMPIXELS 8 //Het aantal LED's op uw ring #define CALIBRATIONTIME 20000
Adafruit_NeoPixel-pixels = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
niet-ondertekende lange pixelsInterval = 500; // de tijd die we moeten wachten
unsigned long colorWipePreviousMillis = 0; ongetekende lange theaterChasePreviousMillis = 0; unsigned long rainbowPreviousMillis = 0; niet-ondertekende lange regenboogCyclesPreviousMillis = 0;
int theaterChaseQ = 0;
uint16_t currentPixel = 0;// op welke pixel werken we?
// TOUCH ~~~~~~~~~~~~~~~~~~~~~~
#include #include #include
// Reset Pin wordt gebruikt voor I2C of SPI
#define CAP1188_RESET 9
// CS-pin wordt gebruikt voor software of hardware SPI
#define CAP1188_CS 10
// Deze zijn gedefinieerd voor software SPI, voor hardware SPI, controleer uw
// SPI-pinnen van het bord in de Arduino-documentatie #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13
// Gebruik I2C, geen reset-pin!
Adafruit_CAP1188 cap = Adafruit_CAP1188();
ongeldige setup() {
// NEOPIXEL ~~~~~~~~~~~~~~~~~~ currentPixel = 0; pixels.begin(); // Hiermee wordt de NeoPixel-bibliotheek geïnitialiseerd. pixels.show(); // Dit stuurt de bijgewerkte pixelkleur naar de hardware.
// TOUCH ~~~~~~~~~~~~~~~~~~~~~~
Serieel.begin(300); Serial.println ("CAP1188-test!");
if (!cap.begin()) {
Serial.println ("CAP1188 niet gevonden"); terwijl (1); } Serial.println("CAP1188 gevonden!"); }
lege lus () {
// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~ uint8_t touched = cap.touched(); if (aangeraakt == 0) { if ((unsigned long)(millis() - colorWipePreviousMillis) >= pixelsInterval) { colorWipePreviousMillis = millis(); colorWipe(pixels. Color(0, 255, 125)); } } else { if ((unsigned long)(millis() - colorWipePreviousMillis) >= pixelsInterval) { colorWipePreviousMillis = millis(); colorWipe(pixels. Color(100, 0, 150)); } }
}
void colorWipe(uint32_t c) {
// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Verwijdert de kleur pixels.setPixelColor(currentPixel, c); pixels.setPixelColor(currentPixel - 1, pixels. Color(0, 0, 0)); pixels.show(); huidigePixel++; if (currentPixel == NUMPIXELS) { currentPixel = 0; pixels.setPixelColor(7, pixels. Color(0, 0, 0));
}
}
Test het en veel plezier! Zoals je ziet verandert de kleur als je het C1-snoer aanraakt. (Als dit niet de eerste keer is, koppelt u gewoon uw Arduino los en sluit u deze weer aan op uw computer.)
Stap 2: Stap 2: Geluid toevoegen
Met behulp van een handige tutorial heb ik dit gemaakt. De tutorial is hieronder:
github.com/xitangg/-Pirates-of-the-Caribbe…
Tijd om je zoemer te pakken! Plaats de (-) van de zoemer in een van de GND-pinnen en de (+) in pin 10~
Dat was het zo'n beetje, nu tijd om de code opnieuw uit te voeren en dat mooie Pirates of the Caribbean-deuntje te horen! Nu veel plezier met testen!
// Julia Emmink// Licht, aanraking en muziekcode voor de interactieve boom 2018-01-19// Gemaakt met behulp van de Adafruit Neopixel en Captive Touch (CAP1188) (moet nog worden geïnstalleerd) en de LED knippert zonder vertraging
// NEOPIXEL ~~~~~~~~~~~~~~~~~~#include
#define PIXELSPIN 6
#define NUMPIXELS 8 #define CALIBRATIONTIME 20000
Adafruit_NeoPixel-pixels = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
niet-ondertekende lange pixelsInterval=500; // de tijd die we moeten wachten
unsigned long colorWipePreviousMillis=0; unsigned long theaterChasePreviousMillis=0; unsigned long rainbowPreviousMillis=0; niet-ondertekende lange regenboogCyclesPreviousMillis=0;
int theaterChaseQ = 0;
uint16_t currentPixel = 0;// op welke pixel werken we?
// MUZIEK ~~~~~~~~~~~~~~~~~~~~~~
const int zoemer = 10; //Definieer pin 10, kan andere PWM-pinnen gebruiken (5, 6 of 9) //Let op pinnen 3 en 11 kunnen niet worden gebruikt bij gebruik van de toonfunctie in Arduino Uno const int songspeed = 1.5; //Verander in 2 voor een langzamere versie van het nummer, hoe groter het nummer, hoe langzamer het nummer //****************************** *************** #define NOTE_C4 262 //Definiëren van nootfrequentie #define NOTE_D4 294 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_G4 392 #define NOTE_A4 440 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_D5 587 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_G5 784 #define NOTE_A5 880 #define NOTE_B5 988 //*********************** **************** int notes = { // Note of the song, 0 is a rust/pulse NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0, NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0, NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0, NOTE_A4, NOTE_G4, NOTE_A4, 0 }; //********************************************* int duur = { / /duur van elke noot (in ms) Kwartnoot is ingesteld op 250 ms 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 375, 125};
// TOUCH ~~~~~~~~~~~~~~~~~~~~~~
#include #include #include
// Reset Pin wordt gebruikt voor I2C of SPI
#define CAP1188_RESET 9
// CS-pin wordt gebruikt voor software of hardware SPI
#define CAP1188_CS 10
// Deze zijn gedefinieerd voor software SPI, voor hardware SPI, controleer uw
// SPI-pinnen van het bord in de Arduino-documentatie #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13
// Gebruik I2C, geen reset-pin!
Adafruit_CAP1188 cap = Adafruit_CAP1188();
ongeldige setup() {
// MUZIEK ~~~~~~~~~~~~~~~~~~~~~~ voor (int i=0;i<203;i++){ //203 is het totale aantal muzieknoten in het nummer int wait = duur * songspeed; toon (zoemer, noten , wacht); //tone(pin, frequency, duration);} //delay wordt gebruikt zodat het niet naar de volgende lus gaat voordat de toon klaar is met spelen //Je kunt op reset klikken op Arduino om het nummer opnieuw af te spelen // NEOPIXEL ~~~ ~~~~~~~~~~~~~~~ currentPixel = 0; pixels.begin(); // Hiermee wordt de NeoPixel-bibliotheek geïnitialiseerd. pixels.show(); // Dit stuurt de bijgewerkte pixelkleur naar de hardware.
// TOUCH ~~~~~~~~~~~~~~~~~~~~~~
Serieel.begin(300); Serial.println ("CAP1188-test!"); if (!cap.begin()) { Serial.println("CAP1188 niet gevonden"); terwijl (1); } Serial.println("CAP1188 gevonden!");
}
lege lus () {
// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~ uint8_t touched = cap.touched(); if (aangeraakt == 0) { if ((unsigned long)(millis() - colorWipePreviousMillis) >= pixelsInterval) { colorWipePreviousMillis = millis(); colorWipe(pixels. Color(0, 255, 125)); } } else { if ((unsigned long)(millis() - colorWipePreviousMillis) >= pixelsInterval) { colorWipePreviousMillis = millis(); colorWipe(pixels. Color(100, 0, 150)); } }
voor (int i=0;i= pixelsInterval) {
colorWipePreviousMillis = millis(); colorWipe(pixels. Color(0, 255, 125)); } } else { if ((unsigned long)(millis() - colorWipePreviousMillis) >= pixelsInterval) { colorWipePreviousMillis = millis(); colorWipe(pixels. Color(100, 0, 150)); }}
vertraging (wacht);
}
}
void colorWipe(uint32_t c){
// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Verwijdert de kleur pixels.setPixelColor(currentPixel, c); pixels.setPixelColor(currentPixel-1, pixels. Color(0, 0, 0)); pixels.show(); huidigePixel++; if(currentPixel == NUMPIXELS){ currentPixel = 0; pixels.setPixelColor(7, pixels. Color(0, 0, 0));
}
}
Stap 3: Extra stap: de stronk 'Arduino Ready' maken



Als u besluit een boomstronk te gebruiken, moet u het volgende doen.
- Koop een boomstronk (ik heb er een gratis gekregen van een oude kerstboom)
- Meet je Arduino en kijk hoe je de bedrading in de boomstronk wilt hebben
- Hol de stronk uit (ik gebruikte een boormachine van school)
- Schuur de ruwe randen eraf
- Voeg leuke kleine details toe
Details die ik heb toegevoegd was een klein logo dat ik heb gemaakt met een lasersnijder. Ik heb ook al mijn elektronica aan de binnenkant op een stok in mijn boom gestapeld en aan de buitenkant heb ik knuffelbeestenvulling toegevoegd om het licht door te laten en die kleine extra zachtheid te geven.
Aanbevolen:
HOE EEN PASSIEVE ZOEMER MET ARDUINO TE INTERFEREN: 4 stappen

HOE EEN PASSIEVE ZOEMER MET ARDUINO TE INTERFEREN: Geluid maken op de Arduino is een interessant project, dit kan worden bereikt met behulp van verschillende modules en apparaten, afhankelijk van uw project en keuzes. In dit project kijken we hoe je geluid kunt maken met een zoemer. Zoemer gebruikt door ho
Gebruik de zoemer op de Magicbit [Magicblocks]: 4 stappen
![Gebruik de zoemer op de Magicbit [Magicblocks]: 4 stappen Gebruik de zoemer op de Magicbit [Magicblocks]: 4 stappen](https://i.howwhatproduce.com/images/002/image-3511-j.webp)
Gebruik de zoemer op de Magicbit [Magicblocks]: In deze tutorial leer je de zoemer op de Magicbit te gebruiken met behulp van Magicblocks. We gebruiken magicbit als ontwikkelbord in dit project dat is gebaseerd op ESP32. Daarom kan elk ESP32-ontwikkelbord in dit project worden gebruikt
Super Mario met zoemer: 3 stappen

Super Mario die zoemer gebruikt: naar muziek luisteren ontspant onze geest en ziel. Laten we wat muziek toevoegen aan je arduino-projecten met behulp van een enkele component, zoemer. Ik vond dit geweldige project met Buzzer die super mario-themalied speelt dat is geschreven door Dipto Pratyaksa op instructables. Daarnaast
Een piëzo-zoemer gebruiken: 4 stappen

Een piëzo-zoemer gebruiken: Beschrijving: Een piëzo-elektrische luidspreker is een luidspreker die het piëzo-elektrische effect gebruikt om geluid te genereren. De aanvankelijke mechanische beweging wordt gecreëerd door een spanning aan te leggen op een piëzo-elektrisch materiaal, en deze beweging wordt typisch omgezet in geluid
Eenvoudige muziekspeler met zoemer: 4 stappen

Eenvoudige muziekspeler met zoemer: dit is een eenvoudig project waarmee je muziek op je arduino kunt afspelen met een zoemer en enkele LED's. Afhankelijk van de frequentie gaat er een andere LED branden. Hiervoor heb je nodig: je arduino unobreadboard4 weerstanden zoemer3 LEDsknopen