คำอธิบาย
บอร์ด Shield ใช้งานร่วมกับ Arduino UNO รองรับ PWM control ควบคุมความเร็วมอเตอร์ ได้โดย Pin D10, D11, D12, D13 ของ Arduino UNO
- Voltage in DC6.5 – 12V
- Voltage Motor DC4.8 – 24V
- Drive working current Io ≤ 2A
- Maximum power dissipation 25W
- High level DC 2.3V ≤ Vin ≤ 5V
- Low level DC 0.3 V ≤ Vin ≤ 15V
Arduino Uno ในส่วนของฝั่ง Digital ใช้ควบคุม L298P Motor Shield
- Digital 10 PWM ควบคุมความเร็วมอเตอร์ A
- Digital 11 PWM ควบคุมความเร็วมอเตอร์ B
- Digital 12 Logic ควบคุมทิศทาง มอเตอร์ A
- Digital 13 Logic ควบคุมทิศทาง มอเตอร์ B
โดยปกติเราจะควบคุมทิศทาง Direction control โดยการป้อน Logic ที่ In1, In2 ของ L298 ให้มี Logic ที่ต่างกันซึ่งก็จะใช้ Digital Pin ของ Arduino Uno ถึง 2 Pin เราสามารถลด Pin ให้เหลือ 1 Pin โดยการต่อ 74HC04 Invert เพื่อกลับ Logic ให้ In1, In2 ของ L298 นอกจากนั้นเรายังสามารถสร้างเสียงเตือนด้วย Buzzer บนบอร์ด L298P Motor Shield โดยสั่ง (Digital Pin D4)
Download โค้ดตัวอย่างการใช้ L298P Motor Shield ควบคุมความเร็วแบบ PWM Arduino Uno + Potentiometer ตัวต้านทานปรับค่าได้ VR 10KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
int E1 = 10; // Motor A Speed int E2 = 11; // Motor B Speed int M1 = 12; // Motor A Direction int M2 = 13; // Motor A Direction int sensor_1 = A0; // Potentiometer ตัวต้านทานปรับค่าได้ VR 10KB int sensorValue_1 = 0; int outputValue_1 = 0; int Direction = 0; void setup() { pinMode(M1, OUTPUT); pinMode(M2, OUTPUT); } void loop() { sensorValue_1 = analogRead(sensor_1); outputValue_1 = map(sensorValue_1, 0, 1023, 0, 255); if (Direction==1) // O หมุนซ้าย CCW , 1 หมุนขวา CW { digitalWrite(M1, LOW); digitalWrite(M2, LOW); } else { digitalWrite(M1, HIGH); digitalWrite(M2, HIGH); } analogWrite(E1, outputValue_1); // Motor A Speed follow Potentiometer analogWrite(E2, outputValue_1); // Motor B Speed follow Potentiometer } |
รีวิว
ยังไม่มีบทวิจารณ์