La scheda Arduino Uno (che uso in molti dei miei progetti) è open hardware, ciò significa che sei libero di costruire la tua scheda senza avere problemi di copyright.
Infatti i file Eagle e lo schema sono disponibili sul sito Arduino.cc in questa pagina.
Grazie a questa libertà molti produttori hanno deciso di costruire delle schede Arduino compatibili e moltissimi shield diversi, abbattendo notevolmente i già bassi prezzi.
Puoi trovare una scheda Arduino compatibile su eBay a questo link.
Se invece decidi di sostenere il progetto Arduino, qui trovi lo store ufficiale.
Il consiglio ovviamente è di acquistare dallo store ufficiale per "ringraziare" e sostenere il team che c'è dietro a questo bellissimo progetto.
In alternativa, se acquisti una scheda non ufficiale, puoi valutare l'idea di fare una donazione al momento del download dell'IDE!
Ciao e grazie!
Segui Daniele Alberti su Google+ per rimanere sempre aggiornato su nuovi post!
Infatti i file Eagle e lo schema sono disponibili sul sito Arduino.cc in questa pagina.
Grazie a questa libertà molti produttori hanno deciso di costruire delle schede Arduino compatibili e moltissimi shield diversi, abbattendo notevolmente i già bassi prezzi.
Puoi trovare una scheda Arduino compatibile su eBay a questo link.
Se invece decidi di sostenere il progetto Arduino, qui trovi lo store ufficiale.
Il consiglio ovviamente è di acquistare dallo store ufficiale per "ringraziare" e sostenere il team che c'è dietro a questo bellissimo progetto.
In alternativa, se acquisti una scheda non ufficiale, puoi valutare l'idea di fare una donazione al momento del download dell'IDE!
Ciao e grazie!
Segui Daniele Alberti su Google+ per rimanere sempre aggiornato su nuovi post!
Ciao,
RispondiEliminavisto che il tuo blog mi é stato molto di aiuto per il mio primo progetto, vorrei condividere con te il mio lavoro, così che possa essere di aiuto a qualcun altro.
É un termostato molto completo, con datario, temperatura umidità, diverse regolazioni...
Se ti interessa, posso mandarti il manuale in PDF.
Se poi lo ritieni interessante, ti posso mandare il codice, il Fritzing del circuito, lo Ketchup del 3D, ecc...
Fammi sapere e complimenti per il blog.
Ciao
Vincenzo
Ciao, mi fa piacere che ti sia stato utile, se sei d'accordo pubblicherei un post citandoti, mandami tutto a dani.albe@tiscali.it. di sicuro potrà servire a molti, Grazie!
EliminaCiao riguardo il tuo progetto del cronometro volevo chiederti come potevo convertire nello sketch i secondi in minuti secondi e millisecondi per farne un cronometro da speedcubing potresti aiutarmi??
RispondiEliminaCiao, da giorni sto cercando di utilizzare il ricetrasmettitore nRF24L01 per movimentare uno stepper motor ULN2003 dello starter kit tramite il rotary encoder.
RispondiEliminaHo trovato tanti progetti simili ma nessuno utile. E sto trovando molte difficoltà a creare lo sketch master e slave partendo dallo sketch migliore che ho trovato il rete che mi permette di muovere lo stepper tramite il rotary dallo stesso arduino.
// include Arduino stepper motor library
#include
// number of steps per one revolution is 2048 ( = 4096 half steps)
#define STEPS 2048
// define stepper motor control pins
#define IN1 11
#define IN2 10
#define IN3 9
#define IN4 8
// initialize stepper library
Stepper stepper(STEPS, IN4, IN2, IN3, IN1);
int8_t quad = 0;
uint8_t previous_data;
void setup()
{
stepper.setSpeed(18); // set stepper motor speed to 10 rpm
// get rotary encoder state
previous_data = digitalRead(A5) << 1 | digitalRead(A4);
// pin change interrupt configuration
PCICR = 2; // enable pin change interrupt for pins PCINT14..8 (Arduino A0 to A5)
PCMSK1 = 0x30; // enable pin change interrupt for pins PCINT12 & PCINT13 (Arduino A4 & A5)
}
ISR (PCINT1_vect) // ISR for Arduino A4 (PCINT12) and A5 (PCINT13) pins
{
uint8_t current_data = digitalRead(A5) << 1 | digitalRead(A4);
if( current_data == previous_data )
return;
if( bitRead(current_data, 0) == bitRead(previous_data, 1) )
quad -= 1;
else
quad += 1;
previous_data = current_data;
}
int8_t encoder_update(void)
{
int8_t val = 0;
while(quad >= 4){
val += 1;
quad -= 4;
}
while(quad <= -4){
val -= 1;
quad += 4;
}
return val;
}
// main loop
void loop()
{
int8_t stp = encoder_update();
while(stp != 0)
{
int8_t dir = (stp > 0) ? -1 : 1;
stepper.step( 20 * dir );
stp += dir;
stp += encoder_update();
}
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(100);
}
Saresti così gentile da fornirmi qualche dritta su quali parti devo inserire nella parte master e quali devo inserire nella slave?
Grazie in anticipo,
Saluti