Offline
Newbie
Karma: 0
Posts: 10
|
 |
« Reply #3 on: August 17, 2012, 04:54:12 am » |
Ecco il codice:
// encoder virtuale 2.0
int a = 11; int a- = 10; int b = 9; int b- = 8; int MT_out = 7; int acc = 6; long timeBase; int analogpin = 0; volatile int state; volatile int state1; int mt; int i; long duration;
void setup(){ pinMode (a, OUTPUT); pinMode (a-, OUTPUT); pinMode (b, OUTPUT); pinMode (b-, OUTPUT); pinMode (MT_out, OUTPUT); pinMode (acc, OUTPUT); Serial.begin(9600); } void loop(){ Time(); state= !state; digitalWrite(a,state); digitalWrite(a-,!state); delayMicroseconds(timeBase); digitalWrite(b,state);digitalWrite(b-,!state); delayMicroseconds(timeBase); mt++; if (mt == 5){ meter();
} }
void Time(){ timeBase= analogRead(analogpin); timeBase= map (timeBase, 0, 1023, 0, 10000); } void meter(){ state1 = !state1; digitalWrite(MT_out,state1); //accelera(); mt = 0; }
void accelera(){ if( i < 255){ for (int i ; i<255; i++){ analogWrite( acc, i); delay(1); } } else{ for (int i ; i>0; i--){ analogWrite( acc, i); delay(1) } } }
|