Kaan
1
#include <Servo.h>
Servo servoM;
int deger=0;
int aci=0;
void setup()
{
servoM.attach(9);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
}
void loop()
{
int deger=analogRead(A0);
int aci=map(deger,0,1023,0,180);
servoM.write(aci);
delay(50);
if(deger>10){
digitalWrite(7,HIGH);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
if(deger>400){
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
if(deger>600){
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(4,LOW);
if(deger>800){
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(4,HIGH);
}
}
}
}
}
yapmak istediğim projenin linki:HGFL ROBOTİK KODLAMA 2 DÖNEM 2 SINAV - YouTube
yaptığım devrenin fotoğrafı gerekli mi?
C++ bilmiyorum fakat bilenlerin daha rahat yardımcı olabilmesi için şu gönderiyi okuyup sorunuzu düzeltmenizi tavsiye ederim
2 Beğeni
if(deger>10 && değer <= 399)
{
...
}
else if(deger > 400 && değer <= 599)
{
...
}
....
gibi olmalı…
semtex
4
Yanık kalan 7. pindeki led ise.
Hiç bir koşulda bu pini şu an kodunda LOW a çektiğini görmüyorum.
Mesela koda bir koşu daha ekleyip, bu dört pini de LOW’a çektiğin bir koşul yazmalısın.
Potansiyometreyi kapattığında: okuduğun, A0 pininden gelen değer kaç ise onu koşul olarak vermen gerekir.
Yani pot kapalı iken
da kaç değeri okunuyorsa onu da koşul olarak verip;
mesela kapalı değer 0 ise;
if(deger==0){
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
Yada okuduğun değerden emin değilsen, en azından 10’dan küçükse LOW a çektriebilirsin.
if(deger<10){
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
Gibi seçenekleri deneyebilrsin.
aib
5
Semasi daha onemli.
Potansiyometre kapandiginda bu deger kac?
Kacla kac arasinda degisiyor?
Kaan
6
potonsiyometre kapandığında değere nasıl bakacağım ki
ADC 10-bit olduğundan 0 - 1023 arasında değişir.
1 Beğeni
Kaan
8
if(deger<10) kodunu en başa yazınca bu sefer hiçbiri yanmadı
semtex
9
Süslü parantezlerine dikkat ederek yazar mısın? Yada düzelttiğin kodu at buraya bakalım.
Her if ayrı ayrı olmalı. Parantezi yanlış yerde
kapatıyorsunuz. Ayrıca aralık vermelisiniz.
10-399, 400-600, vs…
Kaan
11
mehmehB adlı kişinin önerisi üzerine kodu:
if(deger>341){
if(deger<682){
Serial.println(deger_ntc);
if(deger_ntc>=165){
digitalWrite(mavi_taraf,LOW);
digitalWrite(kirmizi_taraf,LOW);
digitalWrite(yesil_taraf,HIGH);
}
else{
digitalWrite(kirmizi_taraf,LOW);
digitalWrite(yesil_taraf,LOW);
digitalWrite(mavi_taraf,LOW);
}
}
}
bu şekilde yapmak için bir kısmını sildim yapacağım halinde bir sıkıntı olursa yine size ve diğerlerine ulaşırım:)
Kaan
12
Tamam öneriniz için teşekkür ederim
Kaan
13
#include <Servo.h>
Servo servoM;
int deger=0;
int aci=0;
void setup()
{
servoM.attach(9);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
}
void loop()
{
int deger=analogRead(A0);
int aci=map(deger,0,1023,0,180);
servoM.write(aci);
delay(50);
if(deger>100){
if(deger<399){
digitalWrite(7,HIGH);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
}
else{
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
}
}
}
böyle yaptım ama hala potonsiyometreyi sıfırlayınca 1.led yanık kalıyor
Burayı
if(deger>341){
if(deger<682){
if(deger>341 && deger<682){
olarak tek satırda yazabilirsiniz.
semtex
15
ilk verdiğin kod bu yukarıdaki;
Bu koda sadece;
if(deger<10){
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
eklermisin dedim;
Eklersek :
#include <Servo.h>
Servo servoM;
int deger=0;
int aci=0;
void setup()
{
servoM.attach(9);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
}
void loop()
{
int deger=analogRead(A0);
int aci=map(deger,0,1023,0,180);
servoM.write(aci);
delay(50);
if(deger<10){
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
if(deger>10){
digitalWrite(7,HIGH);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
if(deger>400){
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
if(deger>600){
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(4,LOW);
if(deger>800){
digitalWrite(7,HIGH);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(4,HIGH);
}
}
}
}
}
}
Olur.
Kaan
16
kodu yapıştırdım ve hiçbir led yanmadı bu sefer
semtex
17
Verdiğin videodaki dört ledi kullanıyoruz değil mi?
En azından videodaki gibi dört led yaktığımızı varsayıyorum ona göre kodunu düzelteceğim de.
1 Beğeni
semtex
19
Pin bağlantılarını kontrol edebilir misin?
1 Beğeni
Kaan
20
7.pin 1.lede
6.pin 2.lede
5.pin 3. lede
4.pin 4.lede bağlı