Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
7Activity
0 of .
Results for:
No results containing your search query
P. 1
Arduino Reloaded

Arduino Reloaded

Ratings: (0)|Views: 3,003|Likes:
Published by m_tr

More info:

Published by: m_tr on Dec 28, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/22/2012

pdf

text

original

 
Arduino Reloaded
Marco Triverio 
<
gtrive@gmail.com
>
E
ccoci al secondo articolo
suArduino: la scorsa puntata abbiamovisto come scrivere i nostri primi dueprogrammi; oggi ci confronteremo conalcuni degli usi pi`u originali che si possonofare con questa scheda completamente
open
.Se ancora non vi fosse perfettamentechiaro cosa sia possibile fare con Ardui-no, vi invito a convincervi che nulla `eimpossibile: l’articolo dello scorso numerodi GiornaLinux e le centinaia di video suYouTube dovrebbero togliervi ogni dubbio!Ecco comunque qualche altro riferimento:guida introduttiva denomina-ta Arduino Booklet(
http://www.arduino.cc/en/uploads/Booklet/Arduino_booklet02.pdf
);“reference” completa e aggiornata ri-guardante tutte le funzioni di al-to livello (
http://arduino.cc/en/Reference/HomePage
);esempi pronti all’usocon tantodi spiegazioni passo passo e im-magini (
http://www.arduino.cc/playground/
);per i dettagli di basso livello,come registri e timer, `e disponibi-le il datasheet del microcontrolloreATmega (ovvero il cervello elettro-nico) montato su Arduino (
http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf
).
Musica maestro!
Chi ha detto che arte e informatica nonvadano d’accordo? Come abbiamo vistoArduino `e uno strumento flessibile e di fa-cile utilizzo e proprio per questo motivo `eutilizzato da designer e artisti di tutto ilmondo.Un esempio? Con Arduino potete costrui-re una tastiera MIDI minimale oppure, pi`usemplicemente, potete memorizzare qual-che canzoncina e farla suonare non appenaun sensore vi segnala un particolare evento:la cosa pi`u semplice `e sicuramente utiliz-zare un pulsante (“push-button”) ma po-tremmo anche scegliere un sensore di luce,un sensore di distanza, eccetera.Vediamo un semplice esempio che dimo-stra come questo sia possibile con pocherighe di codice. Per questo piccolo pro-getto, oltre ad Arduino, ci servir`a un buz-zer (lo trovate in un qualsiasi negozio dielettronica) e, nel caso volessimo rendereil tutto pi`u interattivo, un sensore.3
 
Arduino Reloaded 4
#define c 3830 // 261 Hz#define d 3400 // 294 Hz#define e 3038 // 329 Hz#define f 2864 // 349 Hz#define g 2550 // 392 Hz#define a 2272 // 440 Hz#define b 2028 // 493 Hz#define C 1912 // 523 Hz#define P 0 // pausa// input e outputint buzzer = 9;int sensore = 2;// melodia e tempoint melodia[] = { c, e, g, P, c,e, g, P};int battute[] = { 16, 16, 16, 8,16, 16, 32, 16 };int numNote = sizeof(melodia)/2;long tempo = 10000;int durataPausa = 1000;int contPausa = 100;int notaCorr = 0;int battutaCorr = 0;long durataNota = 0;void suonaNotaCorrente() {long tempoTrasc = 0;// se non `e una "P" riproduce// suono ad una certa frequenzaif (notaCorr > 0) {while (tempoTrasc<durataNota){digitalWrite(buzzer,HIGH);delayMicroseconds(notaCorr/2);digitalWrite(buzzer, LOW);delayMicroseconds(notaCorr/2);// aggiorna tempo trascorsotempoTrasc += notaCorr;}}// nel caso di una "P"else {for (int j=0; j<contPausa; j++)delayMicroseconds(durataNota);}}void setup() {pinMode(buzzer, OUTPUT);pinMode(sensore, INPUT);}void loop() {// la canzone viene suonata// se il bottone `e premutoif (digitalRead(sensore)==HIGH){// ciclo su tutte le notefor (int i=0; i<numNote; i++)

Activity (7)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
granitoblu liked this
Emanuele Buttà liked this
ssddaaqwerrr liked this
mb3link liked this
mitmania liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->