ESP32 Eğitimi 55/55 - 12V, 24V veya 100V DC voltajı nasıl ölçülür | SunFounder'ın ESP32 IoT Öğrenme kiti
Bu eğitimde, ESP32 kullanarak 12V, 24V ve hatta 100V'a kadar çeşitli DC voltajlarını nasıl ölçeceğimizi öğreneceğiz. İki dirençten oluşan bir voltaj bölücü devresi kullanarak, ESP32 mikrodenetleyicisine zarar verme riski olmadan daha yüksek voltajları güvenle ölçebiliriz. Bu proje, bu voltajların nasıl okunacağını ve seri monitörde nasıl görüntüleneceğini göstererek güç kaynaklarınız hakkında değerli bilgiler sağlayacaktır.
Kapsamlı bir açıklama için videoyu izleyin (videoda 00:00'da). Bunu başarmak için basit bir voltaj bölücü konfigürasyonu kullanacağız ve ESP32'nin maksimum giriş seviyelerini aşan voltajları güvenle ölçebilmemizi sağlayacağız. Bu eğitim, ESP32 ve yetenekleri hakkındaki bilgilerini genişletmek isteyenler için mükemmeldir.
Voltajı hesaplama formülü
Donanım Açıklaması
Bu projenin temel bileşenleri ESP32 mikrodenetleyicisi, bir voltaj bölücü oluşturan iki direnç ve ölçmek istediğiniz güç kaynağıdır. ESP32, yerleşik Wi-Fi ve Bluetooth özellikleriyle donatılmıştır ve bu da onu IoT projeleri için çok yönlü bir seçim haline getirir. İki dirençten oluşan voltaj bölücü, voltajı ESP32'nin işleyebileceği güvenli bir seviyeye düşürmemizi sağlar.
Bu kurulumda, bir direnç olan R1 sabit 10kΩ'dır, ikinci direnç olan R2 ise ölçmek istediğiniz maksimum voltaja bağlı olarak değişebilir. R1 üzerindeki voltaj, ESP32'nin analog giriş pinini kullanarak okuyacağımız değerdir ve bu da güç kaynağındaki orijinal voltajı hesaplamamızı sağlar.
- Doğru ölçümler için dirençlerin %1 toleranslı olduğundan emin olun.
- ESP32'nin giriş voltajı değerlerini aşmamak için bir voltaj bölücü kullanın.
R1'i 10kΩ'da tutun ve voltaj aralığına göreR2'yi ayarlayın.- Hatalı okumalara yol açabilecek yüzen girişleri önlemek için bağlantıları kontrol edin.
- Tutarlı voltaj ölçümleri için sabit bir güç kaynağı kullanın.
Bağlantı Talimatları
Devreyi bağlamak için, R1 direncinin (10kΩ) bir ucunu voltaj kaynağınıza, diğer ucunu ESP32'nin GPIO 35 pinine bağlayarak başlayın. Bu pin, R1 üzerindeki voltajı okuyacaktır. Ardından, R2 direncini (ihtiyaçlarınıza bağlı olarak 100kΩ veya başka bir değer olabilir) R1'in birleşim noktası ile toprak arasına bağlayın. Güç kaynağının toprağının da ESP32'nin toprağına bağlı olduğundan emin olun.
Örneğin, 24V ölçüyorsanız, güç kaynağının pozitif terminalini R1'e bağlayın, ardından R1'in diğer ucunu pin 35'e ve iki direncin birleşim noktasına bağlayın. R2'nin serbest ucu toprağa gitmelidir. Bu konfigürasyon, ESP32'nin ölçeklenmiş bir voltajı güvenle okumasını sağlayacaktır.
Kod Örnekleri ve Açıklama
const int R1 = 10000; // Direnç 1 değeri
const int R2 = 100000; // Direnç 2 değeri
const int VinPin = 35; // Voltaj giriş pini
Bu alıntıda, dirençlerimizin değerlerini, R1 ve R2'yi ve voltajı okumak için kullanacağımız analog pini VinPin'i tanımlıyoruz. Bu sabitler voltaj hesaplamalarımız için çok önemlidir.
void readVoltage() {
uint32_t voltage_mV = analogReadMilliVolts(VinPin); // Milivolt cinsinden oku
VB1 = (((float) voltage_mV) / 1000.0) * (1 + (float)R2/(float)R1);
}
Bu fonksiyon, belirtilen pinden voltajı milivolt cinsinden okur ve voltaj bölücü formülünü kullanarak gerçek voltajı VB1'i hesaplar. Bu, ölçeklenmiş voltajı orijinal değere geri çevirmek için önemlidir.
void maxVoltage() {
float maxVoltage = (3.1) * (1 + (float)R2/(float)R1);
}
Burada, direnç değerlerine dayanarak güvenle ölçülebilecek maksimum voltajı hesaplayan ve yazdıran bir fonksiyon tanımlıyoruz. Bu fonksiyon, ESP32'nin voltaj sınırlarını aşmadığımızdan emin olmak için kritiktir.
Gösterim / Beklentiler
Kodu çalıştırdığınızda, ölçülen voltajın seri monitörde görüntülendiğini görmelisiniz. Giriş voltajını ayarladıkça, okumalar bu değişiklikleri gerçek zamanlı olarak yansıtmalı ve ESP32'nin çeşitli DC voltajlarını doğru bir şekilde ölçme yeteneğini göstermelidir. Okumalarda dalgalanmalar yaşarsanız, daha stabil bir sonuç elde etmek için birden fazla örneğin ortalamasını almayı düşünün (videoda 12:30'da).
Video Zaman Damgaları
- 00:00 Başlangıç
- 1:59 Projeye giriş
- 5:45 Voltaj bölücü
- 7:33 Bağlantı açıklaması
- 9:14 Arduino Kodu açıklaması
- 14:45 Arduino IDE'de ESP32 kartını ve COM Portunu seçme
- 16:27 ESP32 kullanarak 30V ölçme Gösterimi
- 21:36 R2'yi 330k ohm olarak değiştirme
- 22:33 Minimum voltaj ölçümü
/*
Arduino code for ESP32 to measure any DC voltage
📚⬇️ Download and resource page https://robojax.com/RJT674
written by Ahmad Shamshiri
watch full video explanation https://youtu.be/znBiVlgV9JI
www.robojax.com
Feb 19, 2024
*/
bool debug = false;
const int R1 = 10000;//we read the voltage acrosst this resistor ()
const int R2 = 100000;
const int VinPin = 35; // Potentiometer connected to GPIO14
// PWM settings
const int freq = 5000; // PWM frequency
const int resolution = 12; // PWM resolution (bits)
const int channel = 0; // PWM channel
float VB1;
int mV;
void setup() {
Serial.begin(115200);
// Configure PWM
ledcSetup(channel, freq, resolution);
//calculatResistor(R1, 24);//10000 ohm and 35.0V
}
void loop() {
readVoltage();
Serial.print("VB1 Voltage: ");
Serial.print(VB1); // Convert millivolts to volts
Serial.println("V ");
delay(500);
}
void readVoltage()
{
uint32_t voltage_mV = analogReadMilliVolts(VinPin); // Read the voltage in millivolts
if(debug)
{
maxVoltage();
Serial.print("PinVoltage: ");
Serial.print(voltage_mV);
Serial.println("mV");
Serial.println();//this adds a new line
}
mV = voltage_mV;
VB1 = (((float) voltage_mV) / 1000.0) * (1 + (float)R2/(float)R1);
}
/*
prints maximum volage
*/
void maxVoltage()
{
float maxVoltage = ( 3.1) * (1 + (float)R2/(float)R1);
Serial.print("****Maximum Voltage: ");
Serial.print(maxVoltage);
Serial.println("V");
}//maxVoltage() end
void calculatResistor(int r1, float voltage)
{
Serial.print("Calculating R2 when R1 is :");
Serial.print(r1);
Serial.print(" Ohms and Maximum Input Voltage is ");
Serial.print(voltage);
Serial.println("V");
Serial.print("***** R2 Should Be ");
float r2 = (voltage - 3.1)/ (3.1/ (float)r1);
Serial.print(r2 / 1000.0);
Serial.println(" kilo Ohms");
while(1);
}
Common Course Links
Common Course Files
Kaynaklar ve referanslar
Henüz kaynak yok.
Dosyalar📁
Dosya mevcut değil.