İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
**Düzenleniyor**
HKU arduino projesi için, potmetrenizi döndürdüğünüzde sizi almak için ilham alıntılarını gösteren LCD ekranlı bir masaüstü düzenleyici yapmaya karar verdim!
Arduino'nuzu saklamak için tahta bir kutu gibi bir şeye sahip olduğunuz sürece, çoğunlukla arduino teknik konularını ele alacağım ve LCD kişisel organizörünüzde istediğiniz herhangi bir formu alabilir.
İhtiyacınız olacak şeyler
- *arduino uno
- pot metre
- * erkek prottying telleri
- *LCD modülü !SD kart okuyuculu! (arduino tft LCD'm var)
- *Mikro SD kart
- *ahşap (Eski mini çekmeceleri geri dönüştürdüm ve bazı yedek ahşap parçalar kullandım, arduino'nuzu saklamak için en azından küçük bir kutu oluşturabildiğinizden emin olun!
Adım 1: Potmetreyi Arduino Üzerinde Ayarlamak
pot ölçerinizi resimde gösterildiği gibi bağlayın
pot metreyi çalıştırmak için
Kurulumdan önce çiziminizin üst kısmındaki bazı değişkenlerle başlamanız gerekecek:
kod:
const int analogInPin = A0; // Potansiyometrenin bağlı olduğu analog giriş pini
int sensörDeğeri = 0; // pottan okunan değer int outputValue = 0; // PWM'ye değer çıkışı (analog çıkış)
Resim 2'de potmetrenin boşluk döngüsünde nasıl haritalandığını gösteriyorum
kod:
// analog değeri oku:
sensorValue = analogRead(analogInPin); // analog çıkış aralığına eşleyin: outputValue = map(sensorValue, 0, 1023, 0, 255); String stuffToPrint = String(outputValue); // analog çıkış değerini değiştirin:
fillToPrint.toCharArray(çıktı, 9); // statik metin myScreen.setTextSize(1);
Serial.print("sensör = "); Serial.print(sensorValue); Serial.print("\t çıktı = "); Serial.println(outputValue);
gecikme(50);
bu, potmetreden gelen analog verileri 0 ila 255 aralığında eşler, bu aralığı lcd slayt gösterimizi kontrol etmek için kullanacağız
Potmetreyi kurmak için yardıma ihtiyacınız varsa; Bu faydalı eğitimdeki kodu kullandım, pinler tamamen aynı ve sonraki adımlarda LCD kurulumu ile çalışacak.
www.toptechboy.com/arduino/lesson-11-arduin…
Adım 2: LCD'yi Ayarlama
Pinleri yukarıdaki örnekte olduğu gibi ayarlayın.
Doğru yapıldığında ekranınız beyaz yanacaktır.
Ekstra yardıma ihtiyacınız varsa veya ekranınızı test etmek için bazı örnek kodlar kullanmak istiyorsanız, bu modülün resmi eğitimini ve kod örneklerini burada görebilirsiniz
bir sonraki adımda "SD karttan resim çizme"yi kısmen kullanacağız.
3. Adım: Slayt Gösterisini Ayarlama
Artık Potmetre ve LCD kurulumuna sahip olduğumuza göre, potmetrenin haritalanmış değerlerini kullanarak bir "slayt gösterisi" oluşturabiliriz.
0 ila 255 aralığını kullanarak, arduino'yu LCD'de bazı içerikleri görüntülemesi için tetikleyebileceğimiz belirli bir aralığı belirtebiliriz.
Resimde gösterildiği gibi ilk örnek:
if (outputValue < 51){ //birinci aralık if (rangeOne == true){ rangeTwo = true; myScreen.setRotation(90); myScreen.background(0, 0, 0); myScreen.stroke(255, 255, 255); myScreen.text("Merhaba harika,", 10, 50); myScreen.text("pimini > konumuna döndürün", 10, 60); myScreen.text("teşvik alın.", 10, 70); rangeOne = yanlış;
Potmetre 51'den daha düşük bir aralığa dönerse, ekranlı ekran (portre modunda = döndürme 90) bir miktar metin.
Bir görüntüyü gösterebilmek için SD CS pininizin doğru tanımlandığından emin olun, yoksa arduino SD'yi başlatamaz (bu yüzden kablolarınızı kontrol ettiğinizden emin olun!!)
LCD'nizin pinlerini kontrol etmek istiyorsanız, "ekranı bağlama" başlıklı resmi kılavuza başvurabilirsiniz
SD CS pinimi şimdi 4 olarak tanımladım çünkü tellerimi karıştırdım mesela! - Bu küçük opsiyi paylaşmaktan mutluluk duyuyorum çünkü bu, web'de "Başlatılamadı" hatasını aramak için size çok zaman kazandıracak. Bazı forumlarda, düzeltmenin belirli bir SD kart modeline sahip olmak olduğu söyleniyor. Bu yüzden yeni SD kartlar satın almadan önce kablolamanızı kontrol edin!!
Adım 4: Tam Kod Örneği
#Dahil etmek
#include // Donanıma özel kitaplık #include
#define SD_CS 4 #define CS 10 #define DC 9 #define RESET 8
const int analogInPin = A0; // Potansiyometrenin bağlı olduğu analog giriş pini
int sensörDeğeri = 0; // pottan okunan değer int outputValue = 0; // PWM'ye değer çıkışı (analog çıkış) bool rangeOne = true; bool rangeİki = doğru; bool rangeÜç = doğru; bool rangeFour = doğru; bool rangeFive = true;
TFT myScreen = TFT(CS, DC, SIFIRLA);
PResim resmi; const karakter çıktısı[9];
geçersiz kurulum(){ Serial.begin(9600); myScreen.begin(); // SD karta erişmeyi deneyin Serial.print("SD kart başlatılıyor…"); if (!SD.begin(SD_CS)) { Serial.println("başarısız!"); dönüş; } Serial.println("Tamam!");
// GLCD ekranını başlat ve temizle myScreen.begin(); myScreen.background(255, 255, 255);
} void loop(){ // analog değeri oku: sensorValue = analogRead(analogInPin); // analog çıkış aralığına eşleyin: outputValue = map(sensorValue, 0, 1023, 0, 255); String stuffToPrint = String(outputValue); // analog çıkış değerini değiştirin:
fillToPrint.toCharArray(çıktı, 9); // statik metin myScreen.setTextSize(1);
Serial.print("sensör = "); Serial.print(sensorValue); Serial.print("\t çıktı = "); Serial.println(outputValue);
gecikme(50);
if (outputValue to", 10, 60); myScreen.text("teşvik alın.", 10, 70); rangeOne = false; } } if(outputValue > 52 && outputValue 102 && outputValue 154 && outputValue < 205){ / /range four if (rangeFour == true){ rangeThree = true; rangeFive = true; myScreen.setRotation(90); myScreen.background(255, 255, 255); // ekran görüntüsünü temizle = myScreen.loadImage("quote2.bmp"); //ekrandaki görüntüyü yaz myScreen.image(image, 0, 0); myScreen.stroke(255, 255, 255); myScreen.text("Gurur duyuyorum", 10, 50); myScreen.text("sizin!", 10, 60); rangeFour = false; } }
if(outputValue > 206 && outputValue