Arduino ile asansör devresi

Nanken

Üye
Katılım
28 Nis 2021
Mesajlar
2
Puanları
1
Yaş
20
Performans ödevi için arduino ile asansör devresi yaptım fakat katlar için 7 segment display veya ledler ile bir kat belirteci koyamadım yardım eden olursa sevinirim kodları ekliyeceğim alt kısıma
 

Ekli dosyalar

  • Yeni Metin Belgesi.txt
    2.8 KB · Görüntüleme: 8
Pin 0,1,2 uçlarına bağladığın ledler katlara göre yanacaktır.


C++:
void setup(){
  Serial.begin(9600);
  while(!Serial);   
  Serial.println("You are in Ground Floor. Please enter your Destination Floor.");
  motor.setSpeed(100);
  pinMode(0,OUTPUT);
  pinMode(1,OUTPUT);
  pinMode(2,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);


 

}

void loop(){
   if(Serial.available()>0)
   {     
     digitalWrite(7,HIGH);// Sets the green light on
     int button=Serial.parseInt();// Takes the value from keyboard from Serial Monitor
     if(button==0||button==1||button==2){       
        CompareFloor(button);// Sets the input value to the Destination function     
        digitalWrite(0,LOW);
        digitalWrite(1,LOW);
        digitalWrite(2,LOW);
        digitalWrite(CurrentFloor,HIGH);  
        Serial.setTimeout(10000000);     

     }
     else{Serial.println("Worng input. Please enter the correct floor number");}
   }

}
 
Performans ödevi için arduino ile asansör devresi yaptım fakat katlar için 7 segment display veya ledler ile bir kat belirteci koyamadım yardım eden olursa sevinirim kodları ekliyeceğim alt kısıma
Sayın @Nanken

Proje hakkında biraz daha detay yazabilir misiniz..Hangi kartı kullandınız? kaç kat var v.s.

Böyle bir niyet var.3-4 katlı bir oyuncak sayılabilecek bir asansör projesi yapmak gibi. Referans açısından projeyi paylaşırsanız (mahsuru yoksa) sevinirim.
 
Tabi sonrasında 7 segment displayi if kullanarak tam ayarlanmadan bir kod yazdım teşekkür ederim bu ledi de kullanacığım proje hakkında bilgi vermeye gelirsek ben burda arduino uno kartını kullandım ULN2003a Step motor sürücü ve 28BYJ-48 step motor kullandım 2 kat olarak bulmuştum github.com dan linki bırakacağım ordan da inceleyebilirsiniz
Kod:
#include <Stepper.h>

const int number_of_steps=200;
Stepper motor(number_of_steps,6, 7, 8, 9);// step motor pinleri
boolean onetime=true;
int CurrentFloor;
int Diff_Flrs;
int x=21;
int y=43;
int d=x;

int e=4;
int qq=5;
int c=10;
int g=11;
int a=12;
int f=13;

/*Kabini uygun yöne hareket ettiren işlev */
void CompareFloor(int DestinationFloor){
    if(onetime==true){
       CurrentFloor=0;
       onetime=false;
     }    
   
/* Katların mesafesini belirleyen kısım */   
    Diff_Flrs=CurrentFloor-DestinationFloor;
    if(Diff_Flrs==2||Diff_Flrs==-2){d=y;} 
    else{d=x;}      
   
/* Gidilecek kat, bulunulan kattan DAHA BÜYÜK ise YUKARI gider*/
    if(DestinationFloor>CurrentFloor){    
       for(int i=0;i<=d;i++){
           digitalWrite(2,HIGH);// Sets the red light on 
           digitalWrite(3,LOW);// Sets the green light off
                   
           motor.step(number_of_steps);         
         } 
       CurrentFloor=DestinationFloor;
          if(DestinationFloor==1)// burası belirteç
{   
digitalWrite(e,HIGH);
digitalWrite(qq,HIGH);
digitalWrite(c,LOW);
digitalWrite(g,HIGH);
digitalWrite(a,HIGH);
digitalWrite(f,HIGH);
}

else if(DestinationFloor>1)
{
digitalWrite(e,LOW);
digitalWrite(qq,LOW);
digitalWrite(c,HIGH);
digitalWrite(g,LOW);
digitalWrite(a,LOW);
digitalWrite(f,LOW);

 
}
if(DestinationFloor<1)
{

digitalWrite(e,LOW);
digitalWrite(qq,LOW);
digitalWrite(c,LOW);
digitalWrite(g,HIGH);
digitalWrite(a,LOW);
digitalWrite(f,LOW);

}
    }   
   

/* Gidilecek kat, mevcut kattan DAHA KÜÇÜK ise AŞAĞI gider*/   
    if (DestinationFloor<CurrentFloor){
       for(int i=0;i<=d;i++)
       {
         digitalWrite(2,HIGH);// Kırmızı led ayarı (açık)
         digitalWrite(3,LOW);// Yeşil led ayarı (kapalı)
         motor.step(-number_of_steps); 
       }  
       CurrentFloor=DestinationFloor;
     } 
    if (DestinationFloor==0){Serial.println("Zemin katta bulunuyorsunuz gideceğiniz katı yazınız. 11/A 25");}
    else{
         Serial.print(DestinationFloor);
         Serial.print(".katta bulunuyorsunuz.");
         Serial.println("Lütfen gideceğiniz katı yazınız.");
     }
     digitalWrite(2,LOW);
     digitalWrite(3,HIGH);
     delay(1500);
    
     if(DestinationFloor==1)
{  
digitalWrite(e,HIGH);
digitalWrite(qq,HIGH);
digitalWrite(c,LOW);
digitalWrite(g,HIGH);
digitalWrite(a,HIGH);
digitalWrite(f,HIGH);

}
else if(DestinationFloor>1)
{
digitalWrite(e,LOW);
digitalWrite(qq,LOW);
digitalWrite(c,HIGH);
digitalWrite(g,LOW);
digitalWrite(a,LOW);
digitalWrite(f,LOW);

}
if(DestinationFloor<1)
{
digitalWrite(e,LOW);
digitalWrite(qq,LOW);
digitalWrite(c,LOW);
digitalWrite(g,HIGH);
digitalWrite(a,LOW);
digitalWrite(f,LOW);

}
}

void setup(){
  Serial.begin(9600);
  while(!Serial);  
  Serial.println("Zemin katta bulunuyorsunuz gideceğiniz katı yazınız. 11/A 25");
  motor.setSpeed(90);
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(13,OUTPUT);
}

void loop(){
   if(Serial.available()>0)
   {     
     digitalWrite(3,HIGH);// Yeşil led ayarı (açık)
     int button=Serial.parseInt();// Bilgisayardan serial monitöre giden veri
     if(button==0||button==1||button==2){       
        CompareFloor(button);//Giriş değerini hedef işlevine ayarlayan kısım     
        Serial.setTimeout(10000000);     
    
     }
     else{Serial.println("Yanlış numara girdiniz tekrar deneyiniz. 11/A 25");}
   }

}/[code]
bu da yeni kullandığım kodlardır
[URL]https://github.com/StratosIlios/Elevator-Arduino-project[/URL] kodlarda geliştirebilceğim bir nokta varsa veya direk projeyi geliştirebilceğim bir nokta önerileriniz olursa sevinirim şimdiden teşekkürler
 
Moderatör tarafında düzenlendi:

Forum istatistikleri

Konular
128,126
Mesajlar
915,254
Kullanıcılar
449,841
Son üye
nazoyata

Yeni konular

Geri
Üst