Hallo,
ich habe eine Frage zu der map() Funktion.
Ich habe gelesen das man beim Erfassen von Werten mit den Analogeneingängen, die Werte von 0-1023 auf 0-255 skaliert.
Jetzt habe ich in folgendem Beispiel (dritte Zeile von unten) gesehen, dass die Werte auf 0-500 skaliert wurden.
Kann mir jemand sagen, ob das einen bestimmten Grund hat? Ich dachte es wäre nur möglich bis auf 255 zu gehen für Werte an den Analogeneingängen?
view plainprint?
const int M1 = 13;
const int M2 = 12;
const int M3 = 11;
const int CC_CCW = 10;
const int CLK = 9;
const int RESET = 8;
const int ENABLE = 7;
const int Latch_Auto = 6;
const int TQ = 5;
void setup() {
pinMode(9, OUTPUT);
// Réglage du timer afin de génerer un signal PWM sur la pin 9
TCCR1A = _BV(COM1A0)
| _BV(COM1B0)
| _BV(WGM10)
| _BV(WGM11);
TCCR1B = _BV(WGM12)
| _BV(WGM13);
OCR1B = 0;
OCR1A = 15383;
TCCR1B |= _BV(CS11);
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
pinMode(M3, OUTPUT);
pinMode(CC_CCW, OUTPUT);
pinMode(CLK, OUTPUT);
pinMode(RESET, OUTPUT);
pinMode(ENABLE, OUTPUT);
pinMode(Latch_Auto, OUTPUT);
pinMode(TQ, OUTPUT);
digitalWrite(CC_CCW, HIGH);
digitalWrite(Latch_Auto, HIGH);
digitalWrite(TQ, HIGH);
// mode 1/16 de pas
digitalWrite(M1, HIGH);
digitalWrite(M2, HIGH);
digitalWrite(M3, LOW);
digitalWrite(RESET, HIGH);
digitalWrite(ENABLE, HIGH);
}
const int N = 50;
unsigned int top;
void loop() {
long val = 0;
// moyennage du potentiomètre
for (int i=0; i<N; i++)
val += analogRead(A5);
val /= N;
OCR1A = map(val, 0, 1023, 0, 500);
delay(1);
}