:: Contraves Binari ::
Ecco un contraves, o meglio un interruttore che restituisce il valore impostato in decimale in binario. I preselettori contraves sono dei contatti rotanti utilizzati per codificare i dati di ingresso in quei circuiti a logica binaria o di ingresso. Questi preselettori contraves sono accessibili all'operatore per favorirne una facile lettura e programmazione.
La gestione dello stesso รจ stata come da sketch qui sotto utilizzata per regolare l'accensione di LED in percentuale.
Ecco il nostro progettino realizzato al Workshop di Milano !!
Ecco lo sketch :
/* 28.2.2010 Milano
* Gianni Lenta, Giorgio Lenta, Salvati Amedeo, Caruso Angelo * * Workshop Milano * Gestione Contraves Binario * */
int iBit1 = 0; int iBit2 = 0; int iBit4 = 0; int iBit8 = 0;
int iValPWM = 0;
//valore totale letto/pesato int val = 0;
void setup() {
Serial.begin( 9600 );
pinMode( BIT1, INPUT ); pinMode( BIT2, INPUT ); pinMode( BIT4, INPUT ); pinMode( BIT8, INPUT );
//attivazione resistori interni di pullup digitalWrite( BIT1, HIGH ); digitalWrite( BIT2, HIGH ); digitalWrite( BIT4, HIGH ); digitalWrite( BIT8, HIGH );
pinMode( BITR, OUTPUT ); pinMode( BITG, OUTPUT ); pinMode( BITB, OUTPUT );
}
void loop(){
iBit1 = 1 - digitalRead( BIT1 ); iBit2 = 1 - digitalRead( BIT2 ); iBit4 = 1 - digitalRead( BIT4 ); iBit8 = 1 - digitalRead( BIT8 );
val = iBit8 * 8 + iBit4 * 4 + iBit2 * 2 + iBit1;
Serial.print( "Bit1: " ); Serial.print( iBit1 ); Serial.print( ", Bit2: " ); Serial.print( iBit2 ); Serial.print( ", Bit4: " ); Serial.print( iBit4 ); Serial.print( ", Bit8: " ); Serial.print( iBit8 ); Serial.print( " " );
Serial.print( "Totale: " ); Serial.print( val );
iValPWM = map(val, 0, 9, 0, 255 );
analogWrite( BITR, iValPWM ); analogWrite( BITB, iValPWM ); analogWrite( BITG, iValPWM );
Serial.print( " Intensita' di colore: " ); Serial.print( iValPWM );
//ultime istruzioni
Serial.println( "" );
delay( DELAY );
}
Un altro particolare