İçindekiler:
- Adım 1: Kullanılan Kaynaklar
- 2. Adım: Montaj
- Adım 3: MBED'de Yeni Program
- Adım 4: DS18b20 Kitaplığını İçe Aktarma
- Adım 5: MBED'de Yeni Program
- Adım 6: Kaynak Kodu
- 7. Adım: Alınan Veriler
- 8. Adım: Daha Fazla Sensör Dahil Etme
- 9. Adım: Kaynağı Görüntüle
- Adım 10: Dosyalar
Video: Programlaması İnanılmaz Kolay!: 10 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bugün sizlere Ultra Low Power'ın yüzü olan STM32 Core L476RG'den bahsedeceğim. Resmin solunda görebilirsiniz. Bu cihazın her iki tarafında birer tane olmak üzere iki dişi pin çubuğu vardır ve bunlar arduino blendajının konektörlerinden başka bir şey değildir. Bu harika, değil mi?
Bence STMicroelectronics bunu Geliştirme Kitinde yaptı çünkü profesyonellerin bu çipi kullandığını biliyor. Bu şirket giderek daha fazla arduinoya doğru gidiyor. Ve bu aynı zamanda diğer birçok profesyonel STMicroelectronics kitleri için de geçerlidir.
Son olarak bugün proje ile ilgili olarak L476RG'ye ek olarak iki adet DS18b20 sensörü kullanacağız. Yani L476RG kullanarak basit bir montaj yapacağız, bir kütüphaneyi MBED ortamına aktaracağız, MBED ortamında bir program oluşturacağız ve USB/Seri üzerinden L476RG'den veri alacağız.
Bu videoda zaten L476RG hakkında biraz konuştum: MİKRODENETLEYİCİ PROGRAMLAMANIN EN KOLAY YOLU, burada çevrimiçi olan MBED ortamının nasıl yapılandırılacağını gösteriyorum.
Videolarımı takip eden bazı kişiler bana STM32'nin ESP32'nin yerini alıp almadığını soruyor. Bir şey söylüyorum: onun yerini tutmaz ve alamaz, çünkü ikisi tamamen farklı şeylerdir.
Bu STM32 çipi bir mikrodenetleyicidir, daha doğrusu; ESP32'de olduğu gibi bir "şeyler kümesi" değildir. Yani isim benzer görünebilir, ancak tamamen farklıdırlar. STM32, örneğin bir PIC, bir Atmel gibi genel amaçlı bir mikro denetleyicidir.
Adım 1: Kullanılan Kaynaklar
1 Çekirdek L476RG
2 adet DS18b20 sensör (piyasadaki ortak su geçirmez modülleri kullanıyoruz)
1 4k7 direnç
Mini protokol
Bağlantı için jumperlar
2. Adım: Montaj
Montajı ilk olarak sıcaklık sensörlerinden birini kullanarak gerçekleştireceğiz.
Gücü 5V olacaktır.
Veri hattında (1-Wire) pull-up yapmak için 4k7 direnç kullanılacaktır.
A0 pinini kullanarak verileri okuyacağız.
Adım 3: MBED'de Yeni Program
Hesabınızı MBED'de kurduktan ve ona eriştiğinizde, yeni bir program oluşturacağız. Bunu yapmak için, "Programlarım" üzerine sağ tıklayın ve "Yeni Program …" seçeneğini seçin.
"Platform" un kullandığınız panoya uygun olduğunu onaylayın.
Şimdi "Şablon" a tıklıyoruz.
"UART kullanarak PC'de bir mesaj görüntüle" örneğine dayalı bir program oluşturacağız.
"Program Adı" alanına programın adını girin.
"Bu programı ve kitaplıkları en son revizyona güncelle" seçeneğini işaretleyin.
Varsayılan MBED kitaplığı ve main.cpp dosyası dahil, programınız için yeni bir klasör oluşturulacaktır.
Her şeyin iyi çalışıp çalışmadığını test etmek için kullanabilirsiniz. Bunu yapmak için, basitçe derleyin ve platforma kopyalayın.
Seçtiğiniz bir seri terminali kullanarak aşağıdaki mesajları alabilirsiniz.
Adım 4: DS18b20 Kitaplığını İçe Aktarma
Ds18b20 için birkaç kitaplık sürümü olduğundan, örneğinizin aynı kitaplığı kullanması için bir url kullanarak içe aktaracağız.
Adım 5: MBED'de Yeni Program
"Kaynak URL" alanına şu adresi girin: https://os.mbed.com/users/Sissors/code/DS1820/ ve içe aktar'ı tıklayın.
DS1820 kitaplığınız program klasörünüzde görünmelidir.
Adım 6: Kaynak Kodu
İçerir
Gerekli kütüphaneleri dahil ederek başladık.
#include "mbed.h" // MBED'yi dahil et
Kullanılan pinleri temsil edecek sabitleri tanımlarız.
DS18b20'nin 1 KABLOLU iletişimli bir sensör olduğunu unutmayın. Bu nedenle cihazlarla tüm iletişim protokolünü işleyecek kütüphaneyi kullanıyoruz. Bu, okuma komutlarına kadar her cihazı tanımlamayı içerir.
#define PINO_DE_DADOS A0 //pino para leitura dos dados#define MAX_SENSORES 16 //sensörlerin sayısını tanımla
Veri hattına bağlı olası 16 cihazın her birine işaret edecek bir vektör oluşturuyoruz.
DS1820* sensör[MAX_SENSORES]; // cria um vetor com 16 konumlu para os sensörleri
Ana () yöntemini başlatıyoruz, burada DS1820 kitaplığında bulunan "unassignedProbe ()" yöntemini kullanarak iletişim hattındaki tüm kullanılabilir cihazları arıyoruz.
Sensör vektörünü mevcut sensörlerin her birini temsil edecek örneklerle dolduruyoruz.
Bunu sonuncusu bulunana kadar veya maksimum 16 sensöre ulaşana kadar yapıyoruz.
int ana(){ int encontrados = 0; while(DS1820::unassignedProbe(PINO_DE_DADOS)) { //incia a procura por sensores sensor[encontrados] = new DS1820(PINO_DE_DADOS); //cria uma instancia para o sensor encontrado encontrados++; if (encontrados == MAX_SENSORES) // sensörlerin bozulmasının doğrulanması; }
Hatta bulunan sensör sayısını gönderiyoruz.
printf("Çeşitli anlaşma(lar): %d \r\n\n", anlaşmalar);
Mevcut tüm sensörlerin ilgili sıcaklıklarını hesaplamasını talep ederek sonsuz bir döngü başlatırız ve ardından elde edilen okumaları göndererek sensör vektörü boyunca yineleniriz.
printf("Çeşitli anlaşma(lar): %d \r\n\n", anlaşmalar); while(1) { sensor[0]->convertTemperature(true, DS1820::all_devices); //için (int i = 0; itemperature()); //… e bir sıcaklık geri dönüşü printf("\r\n"); bekle(1); }
7. Adım: Alınan Veriler
Tek bir sensör kullanarak aşağıdaki seri çıkışı elde ederiz.
8. Adım: Daha Fazla Sensör Dahil Etme
Kodu test etmek için, sadece ilk sensöre paralel olarak bağlayarak iletişim hattına başka bir sensör yerleştiriyoruz.
Yeni sensörleri bağlamadan önce tertibatı kapatmayı unutmayın.
Montajı yeniden başlatırken, kaynak kodunda herhangi bir değişiklik yapmadan aşağıdaki çıktıyı elde ettik.
9. Adım: Kaynağı Görüntüle
#include "mbed.h" // MBED'yi dahil et#"DS1820.h"yi dahil et // sensör DS1820'yi dahil et o Sensörler için en az sayı DS1820* sensörü[MAX_SENSORES]; //cria um vetor com 16 konumlar para os sensörler int ana() { int encontrados = 0; while(DS1820::unassignedProbe(PINO_DE_DADOS)) { //incia a procura por sensores sensor[encontrados] = new DS1820(PINO_DE_DADOS); //cria uma instancia para o sensor encontrado encontrados++; if (encontrados == MAX_SENSORES) // sensörlerin bozulmasının doğrulanması; } printf("Çeşitli anlaşma(lar): %d \r\n\n", anlaşmalar); while(1) { sensor[0]->convertTemperature(true, DS1820::all_devices); //için (int i = 0; itemperature()); //… e bir sıcaklık geri dönüşü printf("\r\n"); bekle(1); } }
Adım 10: Dosyalar
Diğerleri
Önerilen:
Esp8266 Tabanlı Boost Dönüştürücü, Geri Besleme Düzenleyicili İnanılmaz Blynk Kullanıcı Arayüzü ile: 6 Adım
Esp8266 Tabanlı Boost Dönüştürücü, Geri Besleme Düzenleyicili İnanılmaz Bir Blynk Kullanıcı Arayüzü ile: Bu projede size DC voltajlarını nasıl artırabileceğinizi verimli ve yaygın bir şekilde göstereceğim. Bir Nodemcu yardımıyla bir destek dönüştürücü oluşturmanın ne kadar kolay olabileceğini size göstereceğim. Hadi inşa edelim. Ayrıca bir ekran voltmetresi ve bir geri bildirim içerir
LED Şerit İnanılmaz Etkisi: 4 Adım
LED Şerit Şaşırtıcı Etkisi: Merhaba arkadaşım, LED şeridin iyi efektlerini istiyoruz. LED şerit dekoru odamızda ve efekt verdiğinde oda harika görünüyor. LED şeridiniz basit bir şekilde parlıyorsa, bu blog sizin için çok özel çünkü bu blogda nasıl yapabileceğimizi öğreneceksin
Hexabitz, Prototip İnşa Etmenin İnanılmaz Yeni Yolu: 6 Adım
Hexabitz, Prototip İnşa Etmenin İnanılmaz Yeni Yolu: Geçen hafta HackAday.io'da gezinirken bu projeyi “Hexabitz” olarak buldum, o kadar umut verici görünüyordu ki projenin sloganı şuydu: “Donanım prototiplemesi bu kadar zor olmak zorunda değil”. Temel olarak proje, Hexagon veya Pentagon sha'ya sahip modüllerden oluşuyor
3 İnanılmaz BEYİN / ZİHİN Kontrol Projesi Işıklar Arduino ve Neurosky ile LedStrip LED: 6 Adım (Resimlerle)
3 İnanılmaz BEYİN / ZİHİN Kontrol Projeleri Işıklar Arduino ve Neurosky ile LedStrip LED: Hiç sadece düşünerek ışıkları AÇMAK veya KAPATMAK istediniz mi? Yoksa bir RGB ledin rengine bakarak ne kadar stresli olduğunuzu bilmek ister misiniz? Şimdi bu Talimatları takip ederek yapabilirsiniz! Neye gittiğimiz hakkında bir fikir edinmek için
DIY MusiLED, Tek Tıkla Windows ve Linux Uygulaması ile Müzik Senkronize LED'ler (32-bit ve 64-bit). Yeniden Oluşturması Kolay, Kullanımı Kolay, Taşıması Kolay.: 3 Adım
DIY MusiLED, Tek Tıkla Windows ve Linux Uygulaması ile Müzik Senkronize LED'ler (32-bit ve 64-bit). Yeniden Oluşturması Kolay, Kullanımı Kolay, Portu Kolay.: Bu proje, Arduino Board'unuza 18 LED (6 Kırmızı + 6 Mavi + 6 Sarı) bağlamanıza ve bilgisayarınızın Ses Kartının gerçek zamanlı sinyallerini analiz etmenize ve bunları aktarmanıza yardımcı olacaktır. Vuruş efektlerine göre onları aydınlatmak için LED'ler (Snare, High Hat, Kick)