pagine varie
home
compilatore
compilatore di programmi per Arduino
laboratorio
laboratorio
elettricità
appunti di elettronica/elettrotecnica
Processing
compilatore di programmi per Processing
Arduino
compilatore di programmi per Arduino
logggin
accedi o esci
esperimenti senza programmazione
attività immediate
pomodori sonori
led RGB
braccio robotico
robot
tutorials (con programmazione)
luci
il mio primo led si accende
giochi di luci
un dado elettronico
il semaforo
effetto candela
effetto fading
rosso-verde-blu 1
rosso-verde-blu 2
display a 7 segmenti - conto alla rovescia
display a 7 segmenti bis
sensori
costruiamo una nota
interruttori
pulsanti
tastierino
uso di variabili
uso di variabili
funzioni personalizzate
un robot
servi e luci
la scheda motori
ostacoli
Processing
elettronica
meccanica e dintorni
prontuario
piedinature
collegamenti
i pin di Theremino
HAL
linguaggi di programmazione
elenco applicazioni
resistenze
sketches notevoli
circuiti notevoli
tabelle varie
tabella colori
tavola dei simboli
referenze on-line
referenze Theremino
referenze C#
referenze Vb.net
hardware
un kit di base
guida al compilatore
cosa è Theremino?
inizia il laboratorio
rivedi un laboratorio svolto
il mio account
info
link
contatti
rgb1
introduzione
esempio led RGB
Facciamo generare dei valori casuali e assegniamoli al rosso giallo e blu. Vedremo comparire i vari colori.
algoritmo
attrezzaggio
slot 3
_RGBblu1
slot 5
_RGBverde_1
slot 6
_RGBrosso1
variabili
a
=
0
b
=
0
c
=
0
ciclo
nota: colori casuali
la variabile
a
diventa pari a un numero casuale compreso tra
0
e
255
la variabile
b
diventa pari a un numero casuale compreso tra
0
e
255
la variabile
c
diventa pari a un numero casuale compreso tra
0
e
255
AZIONA
_RGBrosso1
al valore:
a
AZIONA
_RGBverde_1
al valore:
b
AZIONA
_RGBblu1
al valore:
c
attendi
500
millisecondi
programma
apri il programma
inizia il laboratorio
codice Arduino
//programma: rgb1 //******* pin ******** const int pin_RGBblu1=3;//pin del _RGBblu1 const int pin_RGBverde_1=5;//pin del _RGBverde_1 const int pin_RGBrosso1=6;//pin del _RGBrosso1 //******* dichiarazioni ******** int a=0;//dichiara la variabile int b=0;//dichiara la variabile int c=0;//dichiara la variabile //********** ciclo ********** static void Main(){ // colori_casuali Random random = new Random(); int a=random.Next(0,255); Random random = new Random(); int b=random.Next(0,255); Random random = new Random(); int c=random.Next(0,255); WriteSlot(pin_RGBrosso1,a); WriteSlot(pin_RGBverde_1,b); WriteSlot(pin_RGBblu1,c); PausaMS(500);//attendi } // ------------------------------------------------------------------------------------------------ // Questa funzione viene chiamata 20 volte al secondo // Tutte le visualizzazioni dei dati nei controlli della finestra principale devono avvenire qui // Se si devono leggere o scrivere i valori degli pin con grande frequenza e' bene farlo qui // Niente PAUSE qui dentro, solo esecuzioni piu' rapide possibile // ------------------------------------------------------------------------------------------------ static void EseguiVentiVolteAlSecondo(){ } // ################################################################ // LA GESTIONE SEMPLIFICATA FINISCE QUI // MODIFICARE LA PARTE SEGUENTE CON ATTENZIONE // ################################################################ static Form Form1; static MemoryMappedFile MMF1; static Timer Timer1; static System.Threading.Thread objThread; static void Main(String[] pars){ if (Form1 != null) return; Form1 = new Form(); Application.EnableVisualStyles(); Form1.SuspendLayout(); Form1.Text = "Theremino Script - rgb1"; Form1.ClientSize = new Size(400, 80); Form1.MinimumSize = Form1.Size; Form1.StartPosition = FormStartPosition.CenterScreen; Form1.ResumeLayout(); Form1.PerformLayout(); Form1.Show(); MMF1 = new MemoryMappedFile("Theremino1", 4080); Timer1 = new Timer(); Timer1.Tick += new EventHandler(Timer1_Tick); Timer1.Interval = 50; Timer1.Start(); StartThread(); while(Form1.Visible){Application.DoEvents(); System.Threading.Thread.Sleep(10); }} static void WriteSlot(Int32 pinNumber, float Value){ MMF1.WriteSingle(pinNumber * 4, Value);} static float ReadSlot(Int32 pinNumber){ float v = MMF1.ReadSingle(pinNumber * 4); if (Single.IsNaN(v)) v = 0; return v;} static void StartThread(){ objThread = new System.Threading.Thread(ExecuteThread); objThread.IsBackground = true; objThread.Priority = System.Threading.ThreadPriority.AboveNormal; objThread.Start();} static void ExecuteThread(){ while (true) { Main(); PausaMS(1); }} static void PausaMS(Int32 mS){ System.Threading.Thread.Sleep(mS);} static void Beep(){ System.Media.SystemSounds.Beep.Play();} static void Timer1_Tick(Object myObject,EventArgs myEventArgs){ EseguiVentiVolteAlSecondo(); } //codice creato con //www.mastrohora.it
copia/incolla in Arduino
collegamenti elettrici
qui il file Fritzing
logout
Ultima modifica: Maggio 2014