Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

sıcaklık etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
sıcaklık etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

29 Haziran 2021 Salı

BME280 Sıcaklık, Nem, Basınç, Yükseklik Sensörü Arduino ile

 

BME280 Sıcaklık, Nem, Basınç, Yükseklik Sensörü Arduino ile

BME280 ile bir sonraki Arduino projenize etrafındaki dünyayı algılama yeteneği verin . Bu sensörlerin kullanımı oldukça basittir, önceden kalibre edilmiştir ve ekstra bileşen gerektirmez, böylece bağıl nem, sıcaklık, barometrik basınç ve yakl. hiçbir zaman irtifa.

BME280 Sıcaklık, Nem ve Basınç Sensörü

Modülün merkezinde, Bosch tarafından üretilen yeni nesil dijital sıcaklık, nem ve basınç sensörü - BME280 bulunmaktadır. BMP180, BMP085 veya BMP183 gibi sensörlerin en modernidir.



Modül Üzerindeki BME280 Çip

Bu hassas sensör, bağıl nemi ±% 3 doğrulukla% 0 ila% 100, barometrik basıncı ± 1 hPa mutlak doğrulukla ve -40 ° C ila 85 ° C arasındaki sıcaklığı ± 1.0 ° C doğrulukla ölçebilir.

Basınç ölçümleri o kadar hassastır (0,25 m'lik düşük irtifa gürültüsü), ± 1 metre hassasiyetle altimetre olarak bile kullanabilirsiniz.

bme280 sensör özellikleri


Güç Gereksinimi

Modül, yerleşik bir LM6206 3.3V regülatörü ve I2C Voltaj Seviye Çeviricisi ile birlikte gelir, böylece Arduino gibi bir 3.3V veya 5V mantık mikrodenetleyicisi ile endişelenmeden kullanabilirsiniz.

BME280 Modül I2C Voltaj Çevirici ve 3.3V Regülatör

BME280, ölçümler sırasında 1mA'dan daha az ve boşta iken yalnızca 5μA tüketir. Bu düşük güç tüketimi, el cihazları, GPS modülleri veya saatler gibi batarya ile çalışan cihazlarda uygulamaya izin verir.

I2C Arayüzü

Modül, seçtiğiniz herhangi bir mikro denetleyiciyle kolayca arabirim oluşturabilen basit bir iki kablolu I2C arabirimine sahiptir.

BME280 modülünün varsayılan I2C adresidir 0x76 HEX ve 0x77 olarak değiştirilebilir HEX çip yanında lehim jumper ile kolayca.

BME280 Modülü I2C Adres Seçici Lehimleme Jumper'ı

I2C Adresini Değiştirme Prosedürü

  • Çipin yanında lehim bağlantı telini bulun. Varsayılan olarak orta bakır ped sol pede bağlanır.
  • Keskin bir bıçak kullanarak olanların bağlantısını kesmek için orta ve sol bakır ped arasındaki bağlantıyı çizin.
  • Orta ve sağ bakır ped arasına bir lehim damlası ekleyin. I2C adresini 0x77 HEX ayarlamanıza izin verir .
BME280 I2C Adres Seçimi Jumper Ayarı

BME280 Sensör Pin Çıkışı

BME280 modülü, kendisini dış dünyaya arayüzleyen yalnızca 4 pime sahiptir. Bağlantılar aşağıdaki gibidir:

BME280 Pinout - Sıcaklık Nem Barometrik Basınç Sensörü

VIN modül için 3.3V ila 5V arasında herhangi bir yerde olabilen güç kaynağıdır.

GND Arduino'nun zeminine bağlanmalıdır

SCL I2C arayüzü için bir seri saat pinidir.

SDA I2C arayüzü için bir seri veri pinidir.

BME280 Modülünü Arduino UNO'ya Kablolama

BME280 modülünü Arduino ya bağlayalım.

Bağlantılar oldukça basit. VIN pinini Arduino'daki 5V çıkışına bağlayarak başlayın ve GND'yi toprağa bağlayın.

Şimdi I2C iletişimi için kullanılan pinlerde kaldık. Her Arduino Board'un uygun şekilde bağlanması gereken farklı I2C pinlerine sahip olduğunu unutmayın. R3 düzenine sahip Arduino kartlarında, SDA (veri hattı) ve SCL (saat hattı), AREF pinine yakın pin başlıkları üzerindedir. A5 (SCL) ve A4 (SDA) olarak da bilinirler.

Bir Mega'nız varsa, iğneler farklıdır! Dijital 21 (SCL) ve 20 (SDA) kullanmak isteyeceksiniz. Hızlı anlamak için aşağıdaki tabloya bakın.

SCLSDA
Arduino UnoA5A4
Arduino NanoA5A4
Arduino Mega2120
Leonardo / Mikro32

Aşağıdaki şema, her şeyi nasıl bağlayacağınızı gösterir.

Fritzing Kablolama BME280 Modülünü Arduino'ya
BME280 Modülünü Arduino ya Kablolama

Gerekli kitaplıkları yükleme

Bir BME280 modülüyle iletişim kurmak bir sürü iştir. Neyse ki, Adafruit BME280 Kütüphanesi , sıcaklık, bağıl nem ve barometrik basınç verilerini okumak için basit komutlar verebilmemiz için tüm karmaşıklıkları gizlemek için yazılmıştır.

Kitaplığı kurmak için Sketch> Dahil Et> Kitaplıkları Yönet'e gidin  Kitaplık Yöneticisinin kitaplıklar dizinini indirmesini ve kurulu kitaplıkların listesini güncellemesini bekleyin.

Arduino Kitaplığı Kurulumu - Arduino IDE'de Kitaplıkları Yönetmeyi Seçme

Aramanızı ' bme280 ' yazarak filtreleyin Birkaç giriş olmalı. Arayın Adafruit BME280 Kütüphanesi tarafından Adafruit . Bu girişe tıklayın ve ardından Yükle'yi seçin.

Arduino IDE'de BME280 Kitaplığını Kurmak

BME280 sensör kitaplığı, Adafruit Sensör desteği arka ucunu kullanır Bu nedenle, kütüphane yöneticisinde Adafruit Unified Sensor'ü arayın ve onu da kurun (biraz kaydırmanız gerekebilir)

Adafruit Birleşik Sensör Kitaplığı Kurulumu

Arduino Kodu - Sıcaklık, Bağıl Nem ve Barometrik Basınç Okuma

Aşağıdaki taslak, BME280 modülünden sıcaklık, bağıl nem ve barometrik basıncın nasıl okunacağı konusunda size tam bir anlayış verecektir ve daha pratik deneyler ve projeler için temel oluşturabilir.

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;

void setup() {
	Serial.begin(9600);

	if (!bme.begin(0x76)) {
		Serial.println("Could not find a valid BME280 sensor, check wiring!");
		while (1);
	}
}

void loop() {
	Serial.print("Temperature = ");
	Serial.print(bme.readTemperature());
	Serial.println("*C");

	Serial.print("Pressure = ");
	Serial.print(bme.readPressure() / 100.0F);
	Serial.println("hPa");

	Serial.print("Approx. Altitude = ");
	Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
	Serial.println("m");

	Serial.print("Humidity = ");
	Serial.print(bme.readHumidity());
	Serial.println("%");

	Serial.println();
	delay(1000);
}

Seri monitörde çıkışın nasıl göründüğü aşağıda açıklanmıştır.

BME280 Sıcaklık Nem Basıncı ve Serail Monitörde Yükseklik Çıkışı

Kod Açıklaması:

Taslak, dört kitaplık dahil olmak üzere başlar. Wire.h , SPI.h , Adafruit_Sensor.h ve Adafruit_BME280.h .

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

Ardından, SEALEVELPRESSURE_HPArakımı hesaplamak için gerekli değişkeni tanımlıyoruz ve onunla ilgili işlevlere erişebilmemiz için Adafruit_BME280 kitaplığının bir nesnesini oluşturuyoruz.

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;

Kodun kurulum bölümünde PC ile seri iletişimi başlatıyoruz ve begin()fonksiyonu çağırıyoruz .

begin(I2C_ADDR)İşlev parametre olarak modülün I2C adresi alır. Modülünüzün I2C adresi farklıysa veya değiştirdiyseniz , doğru şekilde belirtmeniz gerekir. Bu işlev, verilen I2C Adresiyle I2C arayüzünü başlatır ve çip kimliğinin doğru olup olmadığını kontrol eder. Ardından, yumuşak sıfırlama kullanarak çipi sıfırlar ve uyandıktan sonra kalibrasyon için sensör için bekler.

Serial.begin(9600);

if (!bme.begin(0x76)) {
	Serial.println("Could not find a valid BME280 sensor, check wiring!");
	while (1);
}

Kodun döngü bölümünde, BME280 modülünden sıcaklık, bağıl nem ve barometrik basıncı okumak için aşağıdaki işlevleri kullanıyoruz.

readTemperature () işlevi, sensörden sıcaklığı döndürür.

readPressure () işlevi sensörden barometrik basıncı döndürür.

readAltitude (SEALEVELPRESSURE_HPA) işlevi, belirtilen atmosferik basınçtan (hPa cinsinden) ve deniz seviyesi basıncından (hPa cinsinden) yüksekliği (metre cinsinden) hesaplar.

readHumidity () işlevi sensörden bağıl nemi döndürür.

Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println("*C");

Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println("hPa");

Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println("m");

Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println("%");

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

2 Mayıs 2021 Pazar

Arduino ile DS18B20 Sıcaklık Modülü Kullanımı

 

Arduino ile DS18B20 Sıcaklık Modülü Kullanımı


DS18B20 Sıcaklık Modülü:  Sıcaklık modülü, diğer sıcaklık sensörleri çok daha doğru bir seviye sıcaklığı algılamak için kullanılır. Sıcaklık modülü, (Dallas) olarak da bilinen tek telli bir sıcaklık sensöründen (DS18B20) oluşur. Bu modül, mikrodenetleyici ahududu pi ve Arduino gibi herhangi biriyle kullanılabilir ancak biz Arduino kullanıyoruz Sıcaklık modülü geniş bir hassasiyet aralığına sahiptir. -10 ᴼC ile +85 ᴼC aralığında ± 0,5 ᴼC'ye kadar hassastır.


Bu sensörleri Arduino'nuzdan çok daha büyük bir mesafede, Arduino'nuzdan neredeyse 100 metre uzakta bulabilirsiniz. Bu sensörü tek başına kullanacaksanız 5 K ohm yukarı çekme direnci kullanmanız gerekecek ancak modülümüzde kullanmanıza gerek yok. İçerisinde pull up direnci bulunmaktadır. 12 bit çözünürlüğe sahiptir. Düşük güç boşta durumda güç alır. Sıcaklığı ölçmek ve A'dan D'ye dönüştürme yapmak için , ana makineden T [44h] dönüştür komutunu almalıdır. Dönüştürmeden sonra, veriler 2 baytlık sıcaklık kaydında saklanacak ve sensör boşta durumuna dönecektir.

DS18B20 Sıcaklık Modülünün pin çıkışı

DS18B20 sıcaklık modülünün yalnızca üç pimi vardır, bu nedenle kullanımı çok kolaydır, ancak diğer sensörlerle karşılaştırıldığında oldukça hassastır.DS18B20 Sıcaklık Modülü

Sıcaklık modülünün üç pimi

  • Ground: Bu, Arduino'nun topraklamasına bağlanacaktır.
  • VCC: Bu, Arduino'nun 5v'sine bağlanacak
  • Sinyal: Bu , Arduino'nun herhangi bir dijital pinine bağlanacaktır .

 DS18B20 Sıcaklık Modülünün arduino ile bağlantısı

Bağlantı şeması çok daha kolay. Bağlanacak sadece üç pimimiz var. Sıcaklık modülünü şekilde gösterildiği gibi Arduino'ya bağlayın.


 

DS18B20 Sıcaklık Modülü kodu için Kitaplığı Kurma

Kodu yüklemeden önce, DS18B20 sıcaklık sensörünün kitaplığını kurmanız gerekecektir.

Kütüphaneyi buradan indirin ve Arduino kütüphane klasörünüze yerleştirin.

Dosyayı ZIP klasöründen kopyalayın ve kitaplık klasörüne yerleştirin.

Dosyaları kütüphane klasörüne yerleştirdikten sonra, Arduino kütüphane klasöründe onewire ve Dallas temperature içeren yeni klasörler bulunmalıdır. Bundan sonra aşağıdaki kodu Arduino IDE'ye kopyalayın ve kodu yükleyin.

Arduino ile DS18B20 Sıcaklık Modülü Kodu

// This code is for the DS1820 Temperature module.

// Do not forget to install library before running the code.

#include < OneWire.h >  // Including the library of DS1820 Temperature module

#include < DallasTemperature.h >  // Including the library of DS1820 Temperature module

#define ONE_WIRE_BUS 2             // Initializing the Arduino pin 2 for temperature module

OneWire ourWire(ONE_WIRE_BUS);     // Declaring a variable named our wire

DallasTemperature sensors ( &ourWire ) ; // Asking the Dallas temperature library to use the one wire library

void setup ( )            // Void setup runs only one. So the code written in it will run only one time

{

Delay ( 1000 ) ;          // Wait for one second

Serial.begin ( 9600 ) ;   // Setting the baud rate at 9600

Serial.println ( " Microcontrollerlab.com : This is the test code " ) ;

Serial.println ( " Temperature Sensor :  DS18B20 " ) ;

Delay ( 1000 ) ;         // Wait for one second

sensors.begin ( ) ;     // The sensor will start working here

void loop ( )          // Void loop runs repeatedly. So the code written in it will run repeatedly

{

Serial.println ( ) ;  // This will give some space in the output

Serial.print ( " Waiting for the temperature module to give value ... " ) ;                

// This will print “Waiting for the temperature module to give value … ” on the display.

sensors.requestTemperatures ( ) ;  // Sending the commands to get the temperature values from sensor

Serial.println ( " DONE " ) ;      // This will print “ done “ on the display

Serial.print  ( " Temperature in degree C is : " ) ; // This will print " Temperature in degree C is :" on the display

Serial.print ( sensors.getTempCByIndex ( 0 ) ) ; // This will show the temperature in degree C on the display

Serial.println ( "  Degrees C " ) ;             // This will print "  Degrees C " on the display

Serial.print ( " Temperature in degree Fahrenheit is : " ) ; // This will print " Temperature in degree Fahrenheit is : " on display

Serial.print ( sensors.getTempFByIndex ( 0 ) ) ;  // This will show the temperature in Fahrenheit on display

Serial.println ( "  Degrees F " ) ;               // This will print "  Degrees F " on the display

Delay ( 5000 ) ;                                 // Waiting for 5 seconds.

}

Sensör düzgün çalışıyorsa, çıktı şöyle görünmelidir

Bu test kodudur


Sıcaklık Sensörü: DS18B20

Vücut sıcaklığı modülünün değer vermesi bekleniyor ... YAPILDI

Derece C olarak sıcaklık: 19.12 Derece C

Fahrenheit cinsinden sıcaklık: 60.22 Derece F


ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.