Sommario:

Arduino Noise Machine: 4 passaggi
Arduino Noise Machine: 4 passaggi

Video: Arduino Noise Machine: 4 passaggi

Video: Arduino Noise Machine: 4 passaggi
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Luglio
Anonim
Arduino Noise Machine
Arduino Noise Machine
Arduino Noise Machine
Arduino Noise Machine
Arduino Noise Machine
Arduino Noise Machine

Ho trovato un minuscolo altoparlante mentre smontavo un vecchio P. C. per il riciclaggio e ho pensato di vedere come suonava usando la funzione Arduino Tone(). Ho iniziato con un potenziometro da 10Ω per controllare il tono e ho iniziato a fare un po' di rumore. La funzione Tone() utilizza un semplice pattern di impulsi. Attiva e disattiva il suono a frequenze diverse in uno schema a onde quadre. Avevo altri due potenziometri in giro, quindi li ho aggiunti e li ho usati per controllare la durata del tono. Uno per controllare la lunghezza del tono e uno per controllare lo spazio silenzioso tra i toni. Fondamentalmente utilizza un altro modello di onda quadra ma a una frequenza molto più bassa. È possibile ottenere una buona varietà di rumore con questo circuito. Funziona bene anche con un cicalino piezoelettrico, ma manca della risposta dei bassi di un altoparlante.

Passaggio 1: parti di cui avrai bisogno

Arduino Uno

Breadboard e cavi jumper

1 Altoparlante piccolo o cicalino piezo

1 Interruttore a pulsante

3 10Ω Potenziometri

1 resistore da 22Ω

1 resistore da 10kΩ

Passaggio 2: costruisci il circuito

Costruisci il circuito
Costruisci il circuito

Collega la breadboard al tuo pin Arduino 5V e GND. Posiziona l'interruttore a pulsante all'estrema destra o sinistra della breadboard e collegalo a 5 V e a terra usando il resistore da 10 k. Collega un filo dal circuito dell'interruttore al pin 2 del tuo Arduino.

Dall'altro lato della breadboard, imposta il circuito altoparlante/piezo su 5 V e massa utilizzando il resistore da 220. Questo resistore controlla la corrente controllando così il volume; puoi provare diversi resistori qui per un volume più alto o più basso.

Disporre i potenziometri al centro della breadboard, lasciando spazio sufficiente per armeggiare con le manopole. Ogni potenziometro dovrà essere collegato a 5V e terra e i pin centrali di ciascuno collegati ai pin analogici A0, A1 e A2

Passaggio 3: il codice

Un potenziometro o un potenziometro è un resistore variabile che, quando collegato a un Arduino, restituirà un valore compreso tra 0 e 1023. Useremo la funzione map() per modificare questi valori in base alle nostre esigenze. La funzione map() accetta cinque argomenti e nel nostro caso dobbiamo rimappare l'intervallo tra 220 e 2200 per produrre un suono udibile ragionevole.

La funzione è simile a questa:

map(pentola, 0, 1023, 220, 2200);

Puoi giocare con gli ultimi due valori per i toni di frequenza più alti e più bassi, fai solo attenzione a non turbare il tuo cane.

Noise_Machine.ino

/* Macchina del rumore che utilizza tre potenziometri collegati a ingressi analogici
e un piezo o un piccolo altoparlante. Un pulsante accende il rumore, i potenziometri
controlla il tono usando la funzione Arduino tone() e due delay
valori che controllano la lunghezza di ogni tono e la lunghezza tra
ogni tono. I potenziometri danno valori analogici che vengono modificati
usando la funzione map() in intervalli più grandi o più piccoli in base alle tue esigenze
gusti musicali.
Questo codice è di dominio pubblico.
Matt Thomas 2019-04-05
*/
pulsante costantePin = 2; // Perno pulsante 2
parlante costante = 9; // Altoparlante o piezo nel pin 9
int buttonState = 0; // Variabili per il pulsante
int potZero; // e potenziometri
int potOne;
int potDue;
voidsetup() {
pinMode(9, USCITA); // Pin di uscita altoparlante/piezo
}
voidloop() {
buttonState = digitalRead(buttonPin); // Legge lo stato del pulsante
potZero = analogRead(A0); //Variabili per la lettura dei valori analogici
potUno = analogRead(A1);
potDue = analogRead(A2);
int htz = map(potZero, 0, 1023, 0, 8800); // Mappa le letture analogiche in
int high = map(potOne, 0, 1023, 0, 100); // nuovi intervalli di numeri e crea
int low = map(potTwo, 0, 1023, 0, 100); // nuove variabili
if (buttonState == HIGH) { // Se il pulsante viene premuto…
tono (altoparlante, htz); // Suono acceso
ritardo (alto); // Lunghezza del tono
noTone(altoparlante); // Audio Disattivato
ritardo (basso); // Tempo fino al tono successivo
} altro {
noTone(altoparlante); // Nessun tono se il pulsante viene rilasciato
}
}

visualizza rawNoise_Machine.ino ospitato con ❤ da GitHub

Passaggio 4: la fine

Quindi questo è tutto. Gioca con i valori nel codice, aggiungi più pentole/pulsanti e vedi cos'altro puoi controllare. Fatemi sapere se ho commesso errori e spero che la musica vi piaccia.

Consigliato: