#include <Servo.h>
char deger;
Servo taban;
Servo sol;
Servo sag;
Servo tutac;
unsigned int plusewidth;
#define Motor_enable 11 // Motor hız kontrolü
#define Motor_ileri 12 // İleri yönde hareket
int irsensor_1;
int irsensor_2;
int ust=8;
int alt=9;
void setup(){
pinMode(ust,INPUT);
pinMode(alt,INPUT);
pinMode(Motor_enable,OUTPUT);
pinMode(Motor_ileri,OUTPUT);
taban.attach(4);
sol.attach(5);
sag.attach(6);
tutac.attach(7);
}
void loop(){
basla_motor();
int irsensor_1=digitalRead(alt);
int irsensor_2=digitalRead(ust);
Serial.println(irsensor_1);
Serial.println(irsensor_2);
if(irsensor_1 == 0 && irsensor_2 ==0){
deger='a';
}
else if(irsensor_1 ==0 && irsensor_2 ==1){
deger='b';
}
else(irsensor_1 ==1){
deger='c';
}
switch(deger){
case'b'://Küçük bir cisim için
delay(150);
dur_motor();
delay(120);
sola_birak();
delay(15);
break;
case'a': //büyük cisim için
delay(150);
dur_motor();
delay(10);
saga();
delay(15);
break;
case'c': // devam
basla_motor();
break;
}
}
void al(){
taban.write(25);
ac();
ileri();
kapat();
geri();
}
void saga_birak(){
taban.write(25);
ac();
ileri();
kapat();
geri();
saga();
ileri();
geri();
sagdan_baslangica();
}
void sola_birak(){
taban.write(25);
ac();
ileri();
kapat();
geri();
sola();
ileri();
ac();
geri();
soldan_baslangica();
}
void geri(){
for(int i=140;i>65;i--){
sag.write(i);delay(7);
}
}
void ileri(){
for(int i=65;i<140;i++){
sag.write(i);delay(7);
}
}
void ac(){
for(int i=85; i<115;i++){
tutac.write(i);delay(7);
}
}
void kapat(){
for(int i=115;i>85;i--){
tutac.write(i);delay(7);
}
}
void sola(){
for(int i=87;i<120;i++){
taban.write(i);delay(7);
}
}
void saga(){
for(int i=87;i>30;i--){
taban.write(i);delay(7);
}
}
void soldan_baslangica(){
for(int i=120;i>87;i--){
taban.write(i);delay(7);
}
}
void sagdan_baslangica(){
for(int i=30;i<87;i++){
taban.write(i);delay(7);
}
}
/*MOTOR SÜRÜCÜ KODLARI*/
void basla_motor(){
digitalWrite(Motor_ileri,HIGH);
analogWrite(Motor_enable,100);
}
void dur_motor(){
digitalWrite(Motor_ileri,LOW);
analogWrite(Motor_enable,0)
}
Kodlamam bu. Belki basit bir hatadır bilmiyorum ama ben hatayı bulamıyorum maalesef. Kod konveyör bandına inen bir cisim olduğunda sensörden alınan çıkışa göre cismin büyük ve küçük olması durumuna göre ayıran robot kol tasarımı. Eğer hatayı bulup yardımcı olursanız sevinirim .
char deger;
Servo taban;
Servo sol;
Servo sag;
Servo tutac;
unsigned int plusewidth;
#define Motor_enable 11 // Motor hız kontrolü
#define Motor_ileri 12 // İleri yönde hareket
int irsensor_1;
int irsensor_2;
int ust=8;
int alt=9;
void setup(){
pinMode(ust,INPUT);
pinMode(alt,INPUT);
pinMode(Motor_enable,OUTPUT);
pinMode(Motor_ileri,OUTPUT);
taban.attach(4);
sol.attach(5);
sag.attach(6);
tutac.attach(7);
}
void loop(){
basla_motor();
int irsensor_1=digitalRead(alt);
int irsensor_2=digitalRead(ust);
Serial.println(irsensor_1);
Serial.println(irsensor_2);
if(irsensor_1 == 0 && irsensor_2 ==0){
deger='a';
}
else if(irsensor_1 ==0 && irsensor_2 ==1){
deger='b';
}
else(irsensor_1 ==1){
deger='c';
}
switch(deger){
case'b'://Küçük bir cisim için
delay(150);
dur_motor();
delay(120);
sola_birak();
delay(15);
break;
case'a': //büyük cisim için
delay(150);
dur_motor();
delay(10);
saga();
delay(15);
break;
case'c': // devam
basla_motor();
break;
}
}
void al(){
taban.write(25);
ac();
ileri();
kapat();
geri();
}
void saga_birak(){
taban.write(25);
ac();
ileri();
kapat();
geri();
saga();
ileri();
geri();
sagdan_baslangica();
}
void sola_birak(){
taban.write(25);
ac();
ileri();
kapat();
geri();
sola();
ileri();
ac();
geri();
soldan_baslangica();
}
void geri(){
for(int i=140;i>65;i--){
sag.write(i);delay(7);
}
}
void ileri(){
for(int i=65;i<140;i++){
sag.write(i);delay(7);
}
}
void ac(){
for(int i=85; i<115;i++){
tutac.write(i);delay(7);
}
}
void kapat(){
for(int i=115;i>85;i--){
tutac.write(i);delay(7);
}
}
void sola(){
for(int i=87;i<120;i++){
taban.write(i);delay(7);
}
}
void saga(){
for(int i=87;i>30;i--){
taban.write(i);delay(7);
}
}
void soldan_baslangica(){
for(int i=120;i>87;i--){
taban.write(i);delay(7);
}
}
void sagdan_baslangica(){
for(int i=30;i<87;i++){
taban.write(i);delay(7);
}
}
/*MOTOR SÜRÜCÜ KODLARI*/
void basla_motor(){
digitalWrite(Motor_ileri,HIGH);
analogWrite(Motor_enable,100);
}
void dur_motor(){
digitalWrite(Motor_ileri,LOW);
analogWrite(Motor_enable,0)
}
Kodlamam bu. Belki basit bir hatadır bilmiyorum ama ben hatayı bulamıyorum maalesef. Kod konveyör bandına inen bir cisim olduğunda sensörden alınan çıkışa göre cismin büyük ve küçük olması durumuna göre ayıran robot kol tasarımı. Eğer hatayı bulup yardımcı olursanız sevinirim .