Catégories
Liens
Ceci est une ancienne révision du document !
#include <SPI.h> #include <Ethernet.h> boolean DEBUG = false; int pins_pwm[] = {2,3,4,5,6,7}; int pins_nb = 6; byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 0, 102); unsigned int localPort = 8888; char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; char *inParse[100]; EthernetUDP Udp; void setup() { Ethernet.begin(mac,ip); Udp.begin(localPort); if (DEBUG) Serial.begin(38400); for (int thisPin = 0; thisPin < pins_nb ; thisPin++) { pinMode(thisPin, OUTPUT); digitalWrite(thisPin, LOW); } } void loop() { int packetSize = Udp.parsePacket(); if(packetSize) { Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE); //if (DEBUG) Serial.println(packetBuffer); ParseData(); } delay(1); } void ParseData() { char *p = packetBuffer; char *str; String func; int count = 0; // delimiter " " while ((str = strtok_r(p, " ", &p)) != NULL) { inParse[count] = str; count++; //if (DEBUG) Serial.println(str); } if(count == 3) { func = inParse[0]; if (func == "/pwm") { int tmpPin = atoi(inParse[1]); int tmpPwm = atoi(inParse[2]); analogWrite(pins_pwm[tmpPin], constrain(tmpPwm,0,255)); if (DEBUG) Serial.println(inParse[1]); if (DEBUG) Serial.println(inParse[2]); } } }
+ ===== SERIAL - UNO ===== ++++ Code UNO / PWM
/* * Pd > Arduino UNO * 6 sorties MOSFETS PWM * */ int pin, _pwm; void setup() { Serial.begin(19200); pinMode(3, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); digitalWrite(3, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); // --- PWM frequency for D5 & D6 ---- //TCCR0B = TCCR0B & B11111000 | B00000001; // 62500.00 Hz //TCCR0B = TCCR0B & B11111000 | B00000010; // 7812.50 Hz //TCCR0B = TCCR0B & B11111000 | B00000011; // 976.56 Hz //TCCR0B = TCCR0B & B11111000 | B00000100; // 244.14 Hz //TCCR0B = TCCR0B & B11111000 | B00000101; // 61.04 Hz // ---- PWM frequency for D9 & D10 ---- //TCCR1B = TCCR1B & B11111000 | B00000001; // 31372.55 Hz //TCCR1B = TCCR1B & B11111000 | B00000010; // 3921.16 Hz //TCCR1B = TCCR1B & B11111000 | B00000011; // 490.20 Hz //TCCR1B = TCCR1B & B11111000 | B00000100; // 122.55 Hz //TCCR1B = TCCR1B & B11111000 | B00000101; // 30.64 Hz // ---- PWM frequency for D3 & D11 ---- //TCCR2B = TCCR2B & B11111000 | B00000001; // 31372.55 Hz //TCCR2B = TCCR2B & B11111000 | B00000010; // 3921.16 Hz //TCCR2B = TCCR2B & B11111000 | B00000011; // 980.39 Hz //TCCR2B = TCCR2B & B11111000 | B00000100; // 490.20 Hz //TCCR2B = TCCR2B & B11111000 | B00000101; // 245.10 Hz //TCCR2B = TCCR2B & B11111000 | B00000110; // 122.55 Hz //TCCR2B = TCCR2B & B11111000 | B00000111; // 30.64 Hz } void loop() { while (Serial.available()) { pin = Serial.parseInt(); _pwm = Serial.parseInt(); if (Serial.read() == '\n') { /* Serial.print(pin); Serial.print(" "); Serial.println(_pwm); */ analogWrite(pin, constrain(_pwm,0,255)); } } }
===== SERIAL - MEGA ===== ++++ Code Mega / PWM
// Pd > Arduino MEGA // 6 sorties MOSFETS PWM int id; int arg; void setup() { Serial.begin(19200); pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); pinMode(8, OUTPUT); digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, LOW); digitalWrite(10, LOW); digitalWrite(9, LOW); digitalWrite(8, LOW); //MEGA : D4 & D13 //TCCR0B = TCCR0B & B11111000 | B00000001; // 62500.00 Hz //TCCR0B = TCCR0B & B11111000 | B00000010; // 7812.50 Hz //TCCR0B = TCCR0B & B11111000 | B00000011; // 976.56 Hz //TCCR0B = TCCR0B & B11111000 | B00000100; // 244.14 Hz //TCCR0B = TCCR0B & B11111000 | B00000101; // 61.04 Hz //MEGA : D11 & D12 //TCCR1B = TCCR1B & B11111000 | B00000001; //31372.55 Hz //TCCR1B = TCCR1B & B11111000 | B00000010; //3921.16 Hz //TCCR1B = TCCR1B & B11111000 | B00000011; //490.20 Hz //TCCR1B = TCCR1B & B11111000 | B00000100; //122.55 Hz //TCCR1B = TCCR1B & B11111000 | B00000101; //30.64 Hz //MEGA : D9 & D10 //TCCR2B = TCCR2B & B11111000 | B00000001; //31372.55 Hz //TCCR2B = TCCR2B & B11111000 | B00000010; //3921.16 Hz //TCCR2B = TCCR2B & B11111000 | B00000011; //490.20 Hz //TCCR2B = TCCR2B & B11111000 | B00000100; //122.55 Hz //TCCR2B = TCCR2B & B11111000 | B00000101; //30.64 Hz //MEGA : D2, D3 & D5 //TCCR3B = TCCR3B & B11111000 | B00000001; //31372.55 Hz //TCCR3B = TCCR3B & B11111000 | B00000010; //3921.16 Hz //TCCR3B = TCCR3B & B11111000 | B00000011; //490.20 Hz //TCCR3B = TCCR3B & B11111000 | B00000100; //122.55 Hz //TCCR3B = TCCR3B & B11111000 | B00000101; //30.64 Hz //MEGA : D6, D7 & D8 //TCCR4B = TCCR4B & B11111000 | B00000001; //31372.55 Hz //TCCR4B = TCCR4B & B11111000 | B00000010; //3921.16 Hz //TCCR4B = TCCR4B & B11111000 | B00000011; //490.20 Hz //TCCR4B = TCCR4B & B11111000 | B00000100; //122.55 Hz //TCCR4B = TCCR4B & B11111000 | B00000101; //30.64 Hz //MEGA : D44, D45 & D46 //TCCR5B = TCCR5B & B11111000 | B00000001; //31372.55 Hz //TCCR5B = TCCR5B & B11111000 | B00000010; //3921.16 Hz //TCCR5B = TCCR5B & B11111000 | B00000011; //490.20 Hz //TCCR5B = TCCR5B & B11111000 | B00000100; //122.55 Hz //TCCR5B = TCCR5B & B11111000 | B00000101; //30.64 Hz } void loop() { while (Serial.available()) { id = Serial.parseInt(); arg = Serial.parseInt(); if (Serial.read() == '\n') { /* Serial.print("CMD : "); Serial.print(id); Serial.print(" "); Serial.println(arg); */ analogWrite(id, constrain(arg,0,255)); } } }
++