Arduinon 5v çıkışından veriyorum enerjiyi boarda
O zaman dostum bağlantılarda bir hata yapıyor olmalısın. Bana söylediğine göre her şey normal.
Bütün bağlantıları komple sök. devreyi baştan kur adım adım. Kesin hata var bir yerlerde.
Servoda kullandığın jumper kabloları da değiştir. Yine olmazsa artık bol bol resim ve video isteyeceğim.
 
"Senin gibi yapacağım" derken ben en son 5 servo ile ayırma ve tespit etme videosu atmıştım ama şuan o sistemi değiştiriyorum. Çünkü çok fazla kablo oluyor ve kablolar başa bela.

Şuan da yaptığımı özetleyeyim.
Kırmızı led ile ldr yi karşı karşıya koyuyorum. Aralarında en fazla 5mm var. Bu aradan parayı geçirip servo kolu ile durduruyorum.
Para ledin ışığını kesip ldr yi kapattığında servo 1'er derece ilerlemeye başlıyor. Parayı düşürdüğü adım sayısını değişkene aktarıp parayı tanımlıyorum. Kanaldan geçip tanımlanan para 3d yazıcı ile bastığım ayırma aparatında ilerliyor. Kendi deliğine geldiğinde otomatik düşüyor kutuya.

TinkerCad de 16x2 LCD'nin I2C modülü olmadığı için onu ekleyemedim. Ama kolay iş.
Birde bağlayacağım akünün gücünü ölçmek için voltaj bölücü devre yapmam gerek. Henüz sıra gelmedi.


1 Servo
1 LDR
1 Kırmız Led
1 Adet 10k direnç
1 Adet 150r direnç
1 Adet Arduino
1 Adet 16x2 LCD Display (i2C Modüllü)

Son kodlarım bu şekilde. (Sonradan değiştirmem gerekebilir.)

Arduino:
#include <Servo.h>
#include <EEPROM.h>
#include <LiquidCrystal_I2C.h>

// LCD ekran bilgileri
LiquidCrystal_I2C lcd(0x27, 16, 2);

Servo myservo;
#define ldr A0
#define pil A6
int ldr_oku;
int lldr = 0;
int adim = 106;
float para = 0;

// Pil değişkenleri
int min_deger = 988;
float yuzde = 0;
float deger = 0;
int gerilim = 0;

unsigned long simdiki_zaman = 0;
unsigned long onceki_zaman = 0;
int aralik = 32000;

// Pil Karakterleri
byte pil_yuz[8] = {
  B01110,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte pil_yetmisbes[8] = {
  B01110,
  B11011,
  B10001,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte pil_elli[8] = {
  B01110,
  B11011,
  B10001,
  B10001,
  B11111,
  B11111,
  B11111,
  B11111
};
byte pil_yirmibes[8] = {
  B01110,
  B11011,
  B10001,
  B10001,
  B10001,
  B11111,
  B11111,
  B11111
};
byte pil_on[8] = {
  B01110,
  B11011,
  B10001,
  B10001,
  B10001,
  B10001,
  B11111,
  B11111
};

// Kumbara değişkenleri
float toplam = 0;
float veritipi;
void setup()
{
  Serial.begin(115200);
  myservo.attach(12);

  pinMode(ldr, INPUT);

  myservo.write(106);

  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Kumbara V.1");
  lcd.setCursor(0, 1);

  float toplam = EEPROM.get(0, veritipi);
  SatirTemizle(1);
  lcd.setCursor(0, 1);
  lcd.print("Toplam: ");
  String mst = String(toplam);
  String msst = "TL";
  mst.concat(msst);
  lcd.setCursor(8, 1);
  lcd.print(mst);
}


void loop()
{
  lldr = analogRead(ldr);

    ldr_oku = map(lldr, 0, 800, 0, 1);
  if (ldr_oku == 0) {
    myservo.write(adim);
    adim++;
    delay(30);
    lldr = analogRead(ldr);
    ldr_oku = map(lldr, 0, 800, 0, 1);
    if ((ldr_oku == 1) && (adim >= 146)) {
        para = 1;
    Hesapla(para);
        adim = 106;
        myservo.write(adim);
    }else if ((ldr_oku == 1) && (adim >= 137)) {
        para = 0.50;
    Hesapla(para);
        adim = 106;
        myservo.write(adim);
    }else if ((ldr_oku == 1) && (adim >= 126)) {
        para = 0.25;
    Hesapla(para);
        adim = 106;
        myservo.write(adim);
    }else if ((ldr_oku == 1) && (adim >= 119)) {
        para = 0.10;
    Hesapla(para);
        adim = 106;
        myservo.write(adim);
    }else if ((ldr_oku == 1) && (adim >= 115)) {
        para = 0.05;
    Hesapla(para);
        adim = 106;
        myservo.write(adim);
    }
  } else {
    myservo.write(106);
  }

   // Pil Ölçümü
  simdiki_zaman = millis();
  if(onceki_zaman >= 4294967295) onceki_zaman = 0;
  if (simdiki_zaman - onceki_zaman >= aralik) {
    onceki_zaman = simdiki_zaman;

    gerilim = analogRead(pil);
    Serial.print("Analog Read: ");
    Serial.println(gerilim);
    if (gerilim >= 1022)
      gerilim = 1022;

    if (gerilim <= 988)
      gerilim = 988;
    yuzde = gerilim - min_deger;
    //Serial.print("Yüzde: ");
    //Serial.println(yuzde);
    deger = (100.00 / 34.00) * yuzde;
    //Serial.print("Değer: ");
    //Serial.println(deger);

    if (deger >= 90.00)
    {
      lcd.createChar(1, pil_yuz);
      lcd.setCursor(15, 1);
      lcd.write(1);
    } else if (deger >= 75.00)
    {
      lcd.createChar(1, pil_yetmisbes);
      lcd.setCursor(15, 1);
      lcd.write(1);
    } else if (deger >= 50.00)
    {
      lcd.createChar(1, pil_elli);
      lcd.setCursor(15, 1);
      lcd.write(1);
    } else if (deger >= 25.00)
    {
      lcd.createChar(1, pil_yirmibes);
      lcd.setCursor(15, 1);
      lcd.write(1);
    } else
    {
      lcd.createChar(1, pil_on);
      lcd.setCursor(15, 1);
      lcd.write(1);
    }

  }
}

void Hesapla(float gelen_para) {
  SatirTemizle(0);
  lcd.setCursor(0, 0);
  lcd.print("Son Atilan: ");
  lcd.setCursor(12, 0);
  lcd.print(gelen_para);
  Serial.print("Son Atilan: ");
  Serial.println(gelen_para);
  float toplam = EEPROM.get(0, veritipi);
  toplam += gelen_para;
  //EEPROM.put(0,toplam);
  SatirTemizle(1);
  lcd.setCursor(0, 1);
  lcd.print("Toplam: ");
  String mst = String(toplam);
  String msst = "TL";
  mst.concat(msst);
  lcd.setCursor(8, 1);
  lcd.print(mst);
  Serial.print("Toplam: ");
  Serial.print(toplam);
  Serial.println(" TL");
  delay(50);
}

void SatirTemizle(int satir) {
  lcd.setCursor(0, satir);
  lcd.print("                ");
  lcd.setCursor(0, satir);
}

7113 eklentisine bak
Şurdaki devre şemasında küçük bir hata var ledin + - bağlantısıyla ilgili onunla alakalı birşey yoktur değilmi ben değiştirdim bağladım
 
Şurdaki devre şemasında küçük bir hata var ledin + - bağlantısıyla ilgili onunla alakalı birşey yoktur değilmi ben değiştirdim bağladım
Ledin + bacağı dirence gelecek, - bacağı direk - hatta gidecek. Tinkercad de yanlış bağlamışım sanırım. Dediğim gibi yaptıysan sorun olmaz.
 
Ledin + bacağı dirence gelecek, - bacağı direk - hatta gidecek. Tinkercad de yanlış bağlamışım sanırım. Dediğim gibi yaptıysan sorun olmaz.
Servonun hareketi bu enerji veriyorum 180 derece dönüyo tek seferde ondan sonra adım adım ilk noktasına dönüyor
 

Ekler

  • VID_20210116_232514.mp4
    18 MB
Peki kod içinden servonun pinini 11 olarak değiştir. Servoyu da 11 nolu pine bağla. Birde böyle pin değiştirerek deneyelim bakalım.
 
Şöyle devreyi komple gösteren bir kaç resim çeker misin? hangi kablonun nereye gittiği filan belli olsun.
 
Peki kod içinden servonun pinini 11 olarak değiştir. Servoyu da 11 nolu pine bağla. Birde böyle pin değiştirerek deneyelim bakalım.
Değişen birşey olmadı tam olarak servonun davranışını anlatayım abi fotoğraf ekledim enerjiyi verdiğim anda servo bu şekilde davranıyor uzun video atılabilseydi atıcaktım
 

Ekler

  • 16108308710168218223459610184724.jpg
    16108308710168218223459610184724.jpg
    160.4 KB · Görüntüleme: 100
Değişen birşey olmadı tam olarak servonun davranışını anlatayım abi fotoğraf ekledim enerjiyi verdiğim anda servo bu şekilde davranıyor uzun video atılabilseydi atıcaktım
arduino da kodun en üst tarafını çekip atar mısın? Telefonla çekme ama prnt scrn ile ekran görüntüsü al
 
Pil kodlarını kaldırmışsın sanırım. Onları kaldırırken fark etmeden lazım olan bir kodu silmiş olabilirsin. Önce benim paylaştığım gibi komple yükle. Çalışır hale gelince kaldırırsın pil kodlarını. Çalıştığından emin olduğumuz kodu kullanalım ilk başta.

Sonra da devrenin resimlerini at kablo bağlantıları görünecek şekilde.
 
Pil kodlarını kaldırmışsın sanırım. Onları kaldırırken fark etmeden lazım olan bir kodu silmiş olabilirsin. Önce benim paylaştığım gibi komple yükle. Çalışır hale gelince kaldırırsın pil kodlarını. Çalıştığından emin olduğumuz kodu kullanalım ilk başta.

Sonra da devrenin resimlerini at kablo bağlantıları görünecek şekilde.
abi pil kodlarını sana gönderirken kaldırdım ilk çalıştırdığımdan beri böyle yeni kaldırdım kodları yani
 
İkisini tek karede çek. Servoyu da aynı kareye al. tüm sistemi göreyim.
 
Tamam eski resimden gördüm hepsini. Bağlantıların hepsi doğru. Kod da doğru olduğuna göre o unoyu at çöpe ve benim önerdiğim modeli al.

 

Çevrimiçi üyeler

Forum istatistikleri

Konular
6,162
Mesajlar
105,209
Üyeler
2,561
Son üye
burakkaleli

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top