Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
|
projets:patatas-de-goma:dev:code [2014/08/09 20:43] resonance créée |
projets:patatas-de-goma:dev:code [2014/08/09 21:46] (Version actuelle) resonance |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Codes Arduino ====== | ||
| + | |||
| + | ===== Standalone ===== | ||
| <code cpp> | <code cpp> | ||
| #include < | #include < | ||
| Ligne 33: | Ligne 36: | ||
| delay(500); | delay(500); | ||
| } | } | ||
| - | </ | + | </code> |
| + | |||
| + | ===== Avec Pure Data (SerialCommand) ===== | ||
| + | {{: | ||
| + | |||
| + | < | ||
| + | // Controle avec Pure Data (SerialCommand) | ||
| + | |||
| + | // TIMER 0 : 5/6 | ||
| + | // TIMER 1 : 9/10 OCR1A/ | ||
| + | // TIMER 2 : 3/11 (TONE) | ||
| + | |||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | Tone tone1; | ||
| + | SerialCommand sCmd; | ||
| + | |||
| + | int pinTone1 = 3; | ||
| + | int pinPwm1 = 9; | ||
| + | |||
| + | int periodePWM = 800; //max duty cycle 800 marche avec polulu | ||
| + | |||
| + | void setup() { | ||
| + | // 16Mhz(horloge)/ | ||
| + | TCCR1A = 0b10100000; | ||
| + | TCCR1B = 0b00010001; | ||
| + | ICR1 = periodePWM; // 8Mhz/ | ||
| + | |||
| + | // PINS | ||
| + | pinMode(pinPwm1, | ||
| + | tone1.begin(pinTone1); | ||
| + | |||
| + | // SERIAL COMMAND | ||
| + | Serial.begin(115200); | ||
| + | sCmd.addCommand(" | ||
| + | sCmd.addCommand(" | ||
| + | sCmd.addCommand(" | ||
| + | sCmd.setDefaultHandler(unrecognized); | ||
| + | Serial.println(" | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | sCmd.readSerial(); | ||
| + | } | ||
| + | |||
| + | // -------------- KLAXON 1 ----------------- // | ||
| + | void kl1_pwm() { | ||
| + | float pwm; | ||
| + | char *arg; | ||
| + | arg = sCmd.next(); | ||
| + | if (arg != NULL) { | ||
| + | pwm = atoi(arg); | ||
| + | OCR1A = pwm * periodePWM * 0.01; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | void kl1_tone() { | ||
| + | int aNumber, aNumber2; | ||
| + | char *arg; | ||
| + | |||
| + | arg = sCmd.next(); | ||
| + | if (arg != NULL) { | ||
| + | aNumber = atoi(arg); | ||
| + | } | ||
| + | |||
| + | arg = sCmd.next(); | ||
| + | if (arg != NULL) { | ||
| + | aNumber2 = atoi(arg); | ||
| + | tone1.play(aNumber, | ||
| + | } else { | ||
| + | tone1.play(aNumber); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | // STOP | ||
| + | void kl1_stop() { | ||
| + | tone1.stop(); | ||
| + | } | ||
| + | |||
| + | // ----------- UNRECOGNIZED ----------------- // | ||
| + | void unrecognized(const char *command) { | ||
| + | Serial.println(" | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Standalone (avec LEDs) ===== | ||
| + | <code cpp> | ||
| + | // TIMER 0 : 5/6 | ||
| + | // TIMER 1 : 9/10 OCR1A/ | ||
| + | // TIMER 2 : 3/11 (TONE) | ||
| + | |||
| + | int periodePWM = 3500; // max duty cycle = 20khz | ||
| + | |||
| + | int pinTone1 = 3; | ||
| + | int pinPwm1 = 9; | ||
| + | float pwm1 = 80; // % | ||
| + | |||
| + | void setup() { | ||
| + | // 16Mhz(horloge) / 2 / 1(prescaler) : 8Mhz | ||
| + | TCCR1A = 0b10100000; | ||
| + | TCCR1B = 0b00010001; | ||
| + | ICR1 = periodePWM; // 8Mhz/ | ||
| + | OCR1A = pwm1 * periodePWM * 0.01; // out of pwm | ||
| + | |||
| + | // PINS | ||
| + | pinMode(pinTone1, | ||
| + | pinMode(pinPwm1, | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | |||
| + | // LUMINOSITE DE LA LED | ||
| + | analogWrite(pinTone1, | ||
| + | delay(1000); | ||
| + | |||
| + | analogWrite(pinTone1, | ||
| + | delay(1000); | ||
| + | |||
| + | analogWrite(pinTone1, | ||
| + | delay(1000); | ||
| + | |||
| + | analogWrite(pinTone1, | ||
| + | delay(1000); | ||
| + | } | ||
| + | </code> | ||