İçindekiler:

Tinkercad'de Arduino ile Işık Sensörü (Fotodirenç): 5 Adım (Resimlerle)
Tinkercad'de Arduino ile Işık Sensörü (Fotodirenç): 5 Adım (Resimlerle)

Video: Tinkercad'de Arduino ile Işık Sensörü (Fotodirenç): 5 Adım (Resimlerle)

Video: Tinkercad'de Arduino ile Işık Sensörü (Fotodirenç): 5 Adım (Resimlerle)
Video: Gömülü Sistemler / Arduino İle Sera Sistemi / 08.04.2021 2024, Temmuz
Anonim
Tinkercad'de Arduino ile Işık Sensörü (Fotodirenç)
Tinkercad'de Arduino ile Işık Sensörü (Fotodirenç)

Tinkercad Projeleri »

Arduino'nun Analog Girişini kullanarak ışığa duyarlı bir değişken direnç türü olan bir fotorezistörün nasıl okunacağını öğrenelim. Ayrıca LDR (ışığa bağımlı direnç) olarak da adlandırılır.

Şimdiye kadar Arduino'nun analog çıkışıyla LED'leri kontrol etmeyi ve bir başka değişken direnç türü olan bir potansiyometreyi okumayı öğrendiniz, bu yüzden bu derste bu becerileri geliştireceğiz. Arduino'nun analog girişlerinin (A0-A6 ile işaretlenmiş pinler) kademeli olarak değişen bir elektrik sinyalini algılayabildiğini ve bu sinyali 0 ile 1023 arasında bir sayıya çevirdiğini unutmayın.

resim
resim

Simülasyonu Başlat'a ve fotorezistöre (ortada dalgalı bir çizgi olan kahverengi oval) tıklayarak çalışma düzlemine yerleştirilmiş örnek devreyi keşfedin, ardından simüle edilmiş ışık girişini ayarlamak için parlaklık kaydırıcısını sürükleyin.

Bu derste, bu simüle edilmiş devreyi örneğin yanında kendiniz kuracaksınız. İsteğe bağlı olarak fiziksel devreyi kurmak için Arduino Uno kartınızı, USB kablonuzu, lehimsiz devre kartınızı, bir LED'i, dirençleri (220 ohm ve 4.7k ohm), fotodirenci ve devre kartı kablolarınızı bir araya getirin.

Tinkercad Devrelerini kullanarak sanal olarak takip edebilirsiniz. Bu dersi Tinkercad içinden bile görüntüleyebilirsiniz (ücretsiz giriş gereklidir)! Örnek devreyi keşfedin ve hemen yanında kendi devrenizi oluşturun. Tinkercad Circuits, devreler oluşturmanıza ve simüle etmenize izin veren tarayıcı tabanlı ücretsiz bir programdır. Öğrenme, öğretme ve prototip oluşturma için mükemmeldir.

Adım 1: Devreyi Oluşturun

Devreyi İnşa Et
Devreyi İnşa Et
Devreyi İnşa Et
Devreyi İnşa Et

Resimdeki breadboard devresine bir göz atın. Resimdeki karşılaştırma için bu örnek devrenin serbest kablolu versiyonuna bakmak faydalı olabilir. Bu adımda, çalışma düzlemindeki örneğin yanında bu devrenin kendi versiyonunu oluşturacaksınız.

Devam etmek için, yeni bir Tinkercad Devreleri penceresi yükleyin ve örneğin yanında bu devrenin kendi sürümünüzü oluşturun.

Tinkercad Devreleri çalışma düzleminde Arduino'ya bağlı fotodirenci, LED'i, dirençleri ve kabloları tanımlayın.

Bileşenler panelinden mevcut devrenin yanındaki çalışma düzlemine bir Arduino Uno ve devre tahtası sürükleyin.

Kabloları oluşturmak için tıklayarak devre tahtası güç (+) ve toprak (-) raylarını sırasıyla Arduino 5V ve toprağa (GND) bağlayın.

Güç ve topraklama raylarını, devre tahtasının karşı kenarındaki ilgili veri yollarına uzatın (bu devre için isteğe bağlı, ancak genel olarak iyi bir uygulama).

LED'i iki farklı devre tahtası sırasına takın, böylece katot (negatif, daha kısa bacak) bir direncin bir bacağına bağlanır (100-1K ohm'dan herhangi bir yerde iyidir). Direnç her iki yönde de gidebilir, çünkü dirençler, çalışması için belirli bir şekilde bağlanması gereken LED'lerin aksine polarize değildir.

Diğer direnç bacağını toprağa bağlayın.

LED anodunu (pozitif, daha uzun bacak) Arduino pin 9'a bağlayın.

Bileşenler panelinden bir fotorezistörü devre tahtanıza sürükleyin, böylece bacakları iki farklı sıraya takılır.

Bir fotodirenç bacağını güce bağlayan bir tel oluşturmak için tıklayın.

Diğer bacağı Arduino analog pin A0'a bağlayın.

A0'a bağlı fotodirenç ayağını toprağa bağlamak için bileşenler panelinden bir direnç sürükleyin ve değerini 4,7k ohm'a ayarlayın.

2. Adım: Bloklarla Kodlayın

Bloklu Kod
Bloklu Kod

Fotodirencin durumunu dinlemek için kod blokları düzenleyicisini kullanalım, ardından sensörün ne kadar ışık gördüğüne bağlı olarak bir LED'i bağıl parlaklığa ayarlayalım. Fading LED dersinde LED analog çıkış hafızanızı yenilemek isteyebilirsiniz.

Kod düzenleyiciyi açmak için "Kod" düğmesini tıklayın. Gri Gösterim blokları, kodunuzun yapmayı planladığınız şeyi not etmek için yapılan yorumlardır, ancak bu metin programın bir parçası olarak yürütülmez.

Kod düzenleyicide Değişkenler kategorisine tıklayın.

Fotodirencin direnç değerini saklamak için "sensorValue" adlı bir değişken oluşturun.

Bir "set" bloğunu dışarı sürükleyin. Fotodirencimizin durumunu değişkende saklayacağız

sensörDeğeri

Giriş kategorisine tıklayın ve bir "analog okuma pini" bloğunu dışarı sürükleyin ve "to" kelimesinden sonra "set" bloğuna yerleştirin

Potansiyometremiz Arduino'ya A0 pininde bağlı olduğundan, açılır menüyü A0 olarak değiştirin.

Çıktı kategorisini tıklayın ve bir "seri monitöre yazdır" bloğunu sürükleyin.

Değişkenler kategorisine gidin ve sensorValue değişkeninizi "seri monitöre yazdır" bloğuna sürükleyin ve açılır menünün yeni bir satırla yazdırmaya ayarlandığından emin olun. İsteğe bağlı olarak simülasyonu başlatın ve sensörü ayarladığınızda okumaların geldiğini ve değiştiğini doğrulamak için seri monitörü açın. Analog giriş değerleri 0-1023 aralığındadır.

LED'e 0 (kapalı) ile 255 (tam parlaklık) arasında bir sayı yazmak istediğimizden, bizim için bazı çapraz çarpma yapmak için "harita" bloğunu kullanacağız. Matematik kategorisine gidin ve bir "harita" bloğunu dışarı sürükleyin.

İlk yuvada, bir sensorValue değişken bloğunu sürükleyin, ardından aralığı 0 ile 255 arasında ayarlayın.

Çıktı kategorisine geri döndüğünüzde, varsayılan olarak "pin 3'ü 0'a ayarla" yazan bir analog "pin set" bloğunu dışarı sürükleyin. Pim 9'u ayarlamak için ayarlayın.

Ayarlanan sayıyı PWM kullanarak LED pinine yazmak için daha önce yaptığınız map bloğunu "set pin" bloğunun "to" alanına sürükleyin.

Kontrol kategorisine tıklayın ve bir bekleme bloğunu dışarı sürükleyin ve programı 0,1 saniye geciktirecek şekilde ayarlayın.

Adım 3: Fotodirenç Arduino Kodu Açıklaması

Kod düzenleyici açıkken soldaki açılır menüye tıklayıp "Bloklar + Metin" seçeneğini seçerek kod blokları tarafından oluşturulan Arduino kodunu ortaya çıkarabilirsiniz. Kodu daha ayrıntılı olarak keşfederken takip edin.

int sensörDeğeri = 0;

Önce

kurmak()

potansiyometreden okunan mevcut değeri saklamak için bir değişken oluşturuyoruz. denir

int

çünkü bu bir tam sayı veya herhangi bir tam sayıdır.

geçersiz kurulum()

{ pinModu(A0, GİRİŞ); pinMode(9, ÇIKIŞ); Seri.başla(9600); }

Kurulumun içinde, pinler kullanılarak yapılandırılır.

pinModu()

işlev. Pin A0 bir giriş olarak yapılandırılmıştır, böylece potansiyometrenin elektrik durumunu "dinleyebiliriz". Pin 9, LED'i kontrol etmek için bir çıkış olarak yapılandırılmıştır. Mesaj gönderebilmek için Arduino ile yeni bir seri iletişim kanalı açar.

Seri.başlangıç()

baud hızı argümanı alan (hangi hızda iletişim kurulacak), bu durumda saniyede 9600 bit.

boşluk döngüsü()

{ // sensörden değeri oku sensorValue = analogRead(A0); // sensör okumasını yazdırın, böylece aralığını bilin Serial.println(sensorValue);

Bir dizi eğik çizgiden sonra herhangi bir şey

//

İnsanların programın ne yapmak istediğini sade bir dille anlamasına yardımcı olan bir yorumdur, ancak Arduino'nuzun çalıştırdığı programa dahil değildir. Ana döngüde, adı verilen bir işlev

analogRead();

A0 pininin durumunu kontrol eder (0-1023 arasında bir tam sayı olacaktır) ve bu değeri değişkende saklar

sensörDeğeri

// sensör okumasını LED için bir aralığa eşleyin

analogWrite(9, harita(sensorValue, 0, 1023, 0, 255)); gecikme(100); // 100 milisaniye bekle }

Bir sonraki yorumu takip eden satır aynı anda çok şey yapıyor. Unutma

analogWrite()

pin numarası (bizim durumumuzda 9) ve 0 ile 255 arasında olması gereken yazılacak değer olmak üzere iki argüman alır.

harita()

beş argüman alır: değerlendirilecek sayı (sürekli değişen sensör değişkeni), beklenen minimum ve beklenen maksimum ve istenen minimum ve maksimum. Böylece

harita()

bizim durumumuzdaki işlev, gelen sensorValue değerini değerlendirmek ve çıktıyı 0-1023'ten 0-255'e düşürmek için çapraz çarpma yapmaktır. Sonuç, ikinci argümana döndürülür

analogWrite();

pim 9'a bağlı LED'in parlaklığını ayarlama.

Adım 4: Fiziksel Arduino Devresi Oluşturun (isteğe bağlı)

Fiziksel Arduino Devresi Oluşturun (isteğe bağlı)
Fiziksel Arduino Devresi Oluşturun (isteğe bağlı)

Fiziksel Arduino Uno'nuzu programlamak için ücretsiz yazılımı (veya web düzenleyicisi için eklentiyi) yüklemeniz ve ardından açmanız gerekir. Çeşitli fotosellerin farklı değerleri vardır, bu nedenle fiziksel devreniz çalışmıyorsa, onunla eşleştirilmiş direnci değiştirmeniz gerekebilir. Dirençlerle ilgili Instructables Electronics Class dersinde voltaj bölücüler hakkında daha fazla bilgi edinin.

Burada Tinkercad Devrelerinde gösterilen bağlantılara uyacak şekilde bileşenleri ve kabloları takarak Arduino Uno devresini bağlayın. Fiziksel Arduino Uno kartınızla çalışma konusunda daha ayrıntılı bir inceleme için ücretsiz Instructables Arduino sınıfına göz atın.

Kodu Tinkercad Circuits kod penceresinden kopyalayın ve Arduino yazılımınızdaki boş bir çizime yapıştırın veya indirme düğmesine tıklayın (aşağı bakan ok) ve açın

Bu örneği Arduino yazılımında Dosya -> Örnekler -> 03. Analog -> AnalogInOutSerial yolunu izleyerek de bulabilirsiniz.

USB kablonuzu takın ve yazılımın Araçlar menüsünden kartınızı ve bağlantı noktanızı seçin.

Kodu yükleyin ve sensörün ışık almasını engellemek için elinizi kullanın ve/veya sensörünüze ışık tutun!

Sensör değerlerinizi gözlemlemek için seri monitörü açın. Aydınlatma koşullarınıza bağlı olarak gerçek dünya değerlerinin 0'a veya 1023'e kadar uzanmaması muhtemeldir. LED'de maksimum parlaklık ifade aralığını elde etmek için 0-1023 aralığını gözlemlenen minimum ve gözlemlenen maksimuma ayarlamaktan çekinmeyin.

Adım 5: Sonraki, Deneyin…

Artık bir fotodirenci okumayı ve bir LED'in parlaklığını kontrol etmek için çıkışını haritalamayı öğrendiğinize göre, şimdiye kadar öğrendiğiniz bu ve diğer becerileri uygulamaya hazırsınız.

LED'i bir servo motor gibi başka bir çıkış türü için değiştirebilir ve sensörün mevcut ışık seviyesini bir gösterge boyunca belirli bir konum olarak yansıtmak için bir kod oluşturabilir misiniz?

Fotodirencinizi ultrasonik mesafe sensörü veya potansiyometre gibi diğer analog girişlerle değiştirmeyi deneyin.

Seri Monitörü kullanarak Arduino'nuzun dijital ve analog girişlerini bilgisayar üzerinden nasıl izleyeceğiniz hakkında daha fazla bilgi edinin.

Önerilen: