โดยติดไว้ที่ส่วนด้านหน้าของรถสามารถยกขวดน้ำสิ่งของขนาดเล็กทั่วไปได้
โดยต่อบอร์ดIC293 เพิ่มอีกหนึ่งบอร์ด
โดยต่อกับarduinoดังนี้
enable1 : 36 enable2 : 40
motor3 : 38 39
motor4 : 42 43
และแก้โค๊ดโดยเพิ่มตัวแปร และฟังก์ชันดังนี้
//BluetoothCar Project
//author krit
//Date 11/4/2012
int pwm1=9; int pwm2=8;
int m1D1=22; int m1D2=23;
int m2D1=32; int m2D2=33;
int enable1=36; int enable2=40;
int m3D1=38; int m3D2=39;
int m4D1=42; int m4D2=43;
int in;
int total=0;
char state=0;
void countSec();
void go(int speedM);
void back(int speedM);
void tLeft(int speedM);
void tRight(int speedM);
void stopM();
void clip();
void un_clip();
void up();
void down();
void setup()
{
pinMode(m1D1,OUTPUT);
pinMode(m1D2,OUTPUT);
pinMode(m2D1,OUTPUT);
pinMode(m2D2,OUTPUT);
pinMode(m3D1,OUTPUT);
pinMode(m3D2,OUTPUT);
pinMode(m4D1,OUTPUT);
pinMode(m4D2,OUTPUT);
pinMode(enable1,OUTPUT);
pinMode(enable2,OUTPUT);
Serial.begin(9600);
Serial.print("Start\n");
}
void loop()
{
total=0;
state=0;
if(Serial.available()>0){
state=Serial.read();
while(Serial.available()==0 && state!='S'&& state!='C'&& state!='N'&& state!='U'&& state!='D');
if(Serial.available()>0 && state!='S'&& state!='C'&& state!='N'&& state!='U'&& state!='D'){
total=(Serial.read());
//total=(total-66)*10;
}
}
if(state!=0){
switch(state){
case 'C': clip(); break;
case 'N': un_clip(); break;
case 'U': up(); break;
case 'D': down(); break;
case 'G': go(total); break;
case 'B': back(total); break;
case 'L': tLeft(total); break;
case 'R': tRight(total);break;
case 'S': stopM(); break;
default: stopM();
}
}
}
void go(int speedM){
Serial.print("Go!\t");
Serial.print(speedM);
Serial.print("\n");
analogWrite(pwm1, speedM);
digitalWrite(m1D1,HIGH);
digitalWrite(m1D2,LOW);
analogWrite(pwm2, speedM);
digitalWrite(m2D1,HIGH);
digitalWrite(m2D2,LOW);
}
void back(int speedM){
Serial.print("Back!\t");
Serial.print(speedM);
Serial.print("\n");
analogWrite(pwm1, speedM);
digitalWrite(m1D2,HIGH);
digitalWrite(m1D1,LOW);
analogWrite(pwm2, speedM);
digitalWrite(m2D2,HIGH);
digitalWrite(m2D1,LOW);
}
void tLeft(int speedM){
Serial.print("turnLeft!\t");
Serial.print(speedM);
Serial.print("\n");
analogWrite(pwm1, speedM);
digitalWrite(m1D2,HIGH);
digitalWrite(m1D1,LOW);
analogWrite(pwm2, speedM);
digitalWrite(m2D2,LOW);
digitalWrite(m2D1,HIGH);
}
void tRight(int speedM){
Serial.print("turnRight!\t");
Serial.print(speedM);
Serial.print("\n");
analogWrite(pwm1, speedM);
digitalWrite(m1D2,LOW);
digitalWrite(m1D1,HIGH);
analogWrite(pwm2, speedM);
digitalWrite(m2D2,HIGH);
digitalWrite(m2D1,LOW);
}
void stopM(){
Serial.print("Stop!\n");
digitalWrite(pwm2, HIGH);
digitalWrite(pwm1, HIGH);
digitalWrite(m1D2,HIGH);
digitalWrite(m1D1,HIGH);
digitalWrite(m2D2,HIGH);
digitalWrite(m2D1,HIGH);
digitalWrite(enable1,HIGH);
digitalWrite(m3D2,LOW);
digitalWrite(m3D1,LOW);
digitalWrite(enable2,HIGH);
digitalWrite(m4D2,LOW);
digitalWrite(m4D1,LOW);
}
void clip(){
digitalWrite(enable2,HIGH);
digitalWrite(m4D2,LOW);
digitalWrite(m4D1,HIGH);
}
void un_clip(){
digitalWrite(enable2,HIGH);
digitalWrite(m4D2,HIGH);
digitalWrite(m4D1,LOW);
}
void up(){
digitalWrite(enable1,HIGH);
digitalWrite(m3D2,LOW);
digitalWrite(m3D1,HIGH);
}
void down(){
digitalWrite(enable1,HIGH);
digitalWrite(m3D2,HIGH);
digitalWrite(m3D1,LOW);
}
จากBlogที่ผมต้องการเขียนขึ้นมาเพื่อบันทึกเรื่องราวในการฝึกงานเป็นบล็อกที่พยายามเขียนบทความไฟฟ้าอิเล็กทรอกนิกส์และคอมพิวเตอร์
ป้ายกำกับ
FIBO
(28)
microcontroller
(16)
CHIPKIT
(6)
robotics
(6)
Camera
(5)
Photo
(5)
arduino
(5)
bluetooth
(5)
communication
(5)
ubuntu
(5)
กล้อง
(5)
ถ่ายรูป
(5)
android
(4)
pid control
(4)
notebook
(2)
Agile
(1)
CI
(1)
Software engineering
(1)
algorithm
(1)
controller
(1)
game
(1)
guitar
(1)
hardware
(1)
programming
(1)
ล๊อตเตอรี่
(1)
สลากกินแบ่งรัฐบาล
(1)
หวย
(1)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น