İçindekiler:

CloudX ile Dijital Voltmetre: 6 Adım
CloudX ile Dijital Voltmetre: 6 Adım

Video: CloudX ile Dijital Voltmetre: 6 Adım

Video: CloudX ile Dijital Voltmetre: 6 Adım
Video: Cool Akıllı Dijital NFC Kartvizit Nasıl Çalışır? 2024, Temmuz
Anonim
CloudX ile Dijital Voltmetre
CloudX ile Dijital Voltmetre

Piller, devrelerde kullanıldığında daha saf bir DC (doğru akım) gücü sağlar. Düşük gürültü seviyeleri, onları her zaman bazı çok hassas devreler için mükemmel bir uyum haline getirir. Bununla birlikte, voltaj seviyeleri belirli bir eşik noktasının altına düştüğünde, devreler - (güç vermek içindir) düzensiz bir davranışa girebilir; özellikle bununla başa çıkmak için iyi tasarlanmadıklarında.

Bu nedenle, tam değiştirme veya şarj edilebilir bir pil olması durumunda şarj etme zamanı konusunda bize doğru şekilde rehberlik etmek için pil gücü seviyesini düzenli olarak izleme ihtiyacı ortaya çıkar. Bu nedenle, bu Kendin Yap'ta (Kendin Yap), CloudX'i kullanarak basit bir pil voltajı ölçer tasarlayacağız – 7 Segment'i ekranımız olarak kullanarak.

Adım 1: Donanım Gereksinimi

CloudX Mikrodenetleyici Modülü

CloudX USB

SoftCard

7 Segment Ekran

dirençler

Güç Kaynağı Ünitesi

ekmek tahtası

Jumper (Bağlantı) Telleri

2. Adım: CloudX M633 Mikrodenetleyici

CloudX M633 Mikrodenetleyici
CloudX M633 Mikrodenetleyici

CloudX Mikrodenetleyici Modülü

CloudX modülü, basit bir mikrodenetleyici kartı aracılığıyla fiziksel dünya ile çok rahat ve kolay bir şekilde arayüz oluşturmanıza olanak tanıyan bir elektronik tasarım donanım aracıdır. Tüm platform, açık kaynaklı bir fiziksel hesaplamaya dayanmaktadır. Bir IDE'nin (Entegre Geliştirme Ortamı) basitliği, onu gerçekten yeni başlayanlar için mükemmel bir uyum haline getirir, ancak ileri düzey son kullanıcıların yollarını bulmasına izin vermek için yeterli bir işlevselliğe sahiptir. Özetle, CloudX mikrodenetleyiciyi işlemek için çok basitleştirilmiş bir süreç sağlar - onunla ilişkili normal karmaşık ayrıntıları soyutlayarak; aynı zamanda çok zengin bir kullanıcı deneyimi platformu sunar. Her alanda geniş uygulamalar bulur: harika bir Eğitim aracı olarak okullar; endüstriyel ve ticari ürünler; ve bir hobicinin elinde harika bir yardımcı araç olarak.

3. Adım: Bağlantıları Sabitleyin

Pin Bağlantıları
Pin Bağlantıları

7 segmentli pinler: A, B, C, D, E, F, G, 1, 2 ve 3 CloudX-MCU'nun pin1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, sırasıyla pin10 ve pin11.

Adım 4: Devre Şeması

Devre şeması
Devre şeması

Burada merkez aşamada bulunan mikrodenetleyici modülü çalıştırılabilir:

kart üzerindeki Vin ve Gnd noktaları aracılığıyla (yani bunları harici güç kaynağı ünitenizin +ve ve –ve terminallerine bağlamak) yoluyla;

veya CloudX USB softcard modülünüz aracılığıyla

. Ayrıca, yukarıdaki devre şemasından kolayca görülebileceği gibi, giriş akü voltajı, MCU (mikrodenetleyici) modülü ile, voltaj bölücü şebekenin (ve tarafından oluşturulan) noktası MCU pininin A0'ına bağlanacak şekilde arayüzlenir..

ve şu şekilde seçilir:

ağ üzerinden akan akım miktarını sınırlamak;

MCU için (0 – 5) V'lik güvenli bir aralık içinde sınırlayın.

Formülü kullanarak: VOUT = (R2/(R1+R2)) * VIN; ve kolayca değerlendirilebilir.

Voutmax = 5V

ve bu proje için şunu seçiyoruz: Vinmax = 50V;

5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Örneğin R2 = 10kΩ alarak; R1 = 45/5 * 10 = 90kΩ

Adım 5: Çalışma Prensibi

Giriş ölçülen voltaj, voltaj bölücü ağının VOUT noktası aracılığıyla okunduğunda, veriler, segment biriminde görüntülenen nihai gerçek değeri değerlendirmek için MCU'da daha fazla işlenir. Bu (sistem tasarımı), otomatik bir ondalık nokta yerleştiricidir, çünkü (ondalık nokta), zaman içinde herhangi bir noktada kayan nokta değerinin dikte ettiği şeye göre görüntü biriminin kendisindeki konumu değiştirir. Ardından, tüm donanım 7-Segment görüntüleme birimi, multipleks modunda kablolanır. MCU'dan gelen aynı veri yolunun (8-veri pinleri) görüntüleme ünitesindeki üç aktif 7-segmenti beslediği özel bir düzenlemedir. Bileşen parçalarının her birine veri deseni göndermek, Tarama olarak adlandırılan bir işlemle gerçekleştirilir. Tarama, bileşen 7-segmentinin her birine veri göndermeyi içeren bir tekniktir; ve ilgili verileri geldiğinde bunları hızlı bir şekilde arka arkaya etkinleştirme (yani açma). Her birine hitap etme oranı, insan vizyonunu, hepsinin (bileşen parçaların) aynı anda etkinleştirildiğine (adreslendiğine) inandıracak şekilde aldatmayı başaracak şekilde yapılır. Bu (tarama) basitçe, aslında, Persistence Of Vision olarak bilinen bir fenomeni kullanır.

Adım 6: Yazılım Programı

#Dahil etmek

#Dahil etmek

#Dahil etmek

#define segment1 pin9

#define segment2 pin10

#define segment3 pin11

float batt_voltage;

int ondalıkNokta, vuruş;

/*verilen her rakam için segment-paterini saklayan diziler*/

char CCathodeDisp = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};

char CAnodeDisp = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};

int disp0, disp1, disp2;

Görüntüle() {

imzasız karakter i;

if(decimalPoint < 10) {

disp0 = (int)batt_voltage /100; //MSD'yi getirir (En Önemli Basamak)

//en yüksek ağırlıklı olmak

/* sonraki ağırlıklı basamağı getirir; ve bunun gibi */

disp1 = ((int)batt_voltage % 100)/10;

disp2 = ((int)batt_voltage % 10);

}

Başka {

disp0 = (int)batt_voltage /1000;

disp1 = ((int)batt_voltage % 1000)/100;

disp2 = ((int)batt_voltage % 100)/10;

}

/*Kalıplar görüntülenmek üzere dökülür; ve bir ondalık nokta ekleyen 0x80 karakteri

ilişkili koşul doğruysa*/

for(i=0; i<50; i++) {

pin9 = pin10 = pin11 = YÜKSEK;

if(ondalıkNokta < 10)

portWrite(1, CCathodeDisp[disp0] | 0x80);

başka portWrite(1, CCathodeDisp[disp0]);

segment1 = DÜŞÜK;

segment2 = YÜKSEK;

segment3 = YÜKSEK;

gecikmeMs(5);

pin9 = pin10 = pin11 = YÜKSEK;

if((decimalPoint >= 10) && (decimalPoint < 100))

portWrite(1, CCathodeDisp[disp1] | 0x80);

başka portWrite(1, CCathodeDisp[disp1]);

segment1 = YÜKSEK;

segment2 = DÜŞÜK;

segment3 = YÜKSEK;

gecikmeMs(5);

pin9 = pin10 = pin11 = YÜKSEK;

if (decimalPoint >= 100)

portWrite(1, CCathodeDisp[disp2] | 0x80);

başka portWrite(1, CCathodeDisp[disp2]);

segment1 = YÜKSEK;

segment2 = YÜKSEK;

segment3 = DÜŞÜK;

gecikmeMs(5);

}

}

setup(){ //buraya kur

analogSetting(); //analog bağlantı noktası başlatıldı

portMode(1, ÇIKIŞ); // 1'den 8'e kadar olan pinler çıkış pinleri olarak konfigüre edildi

/* çıkış pinleri olarak yapılandırılmış tarama pinleri */

pin9Mode = ÇIKIŞ;

pin10Mode = ÇIKIŞ;

pin11Mode = ÇIKIŞ;

portWrite(1, DÜŞÜK);

pin9 = pin10 = pin11 = YÜKSEK; // tarama pinleri (aktif-düşük olan)

//başlangıçta devre dışı bırakılır

loop(){ //Burada programlayın

batt_voltage = analogRead(A0); //ölçülen değeri alır

batt_voltage = ((batt_voltage * 5000) / 1024); //5Vin için dönüştürme faktörü

batt_voltage = (batt_voltage * 50)/5000; //50Vin için dönüştürme faktörü

decimalPoint = batt_voltage; // ondalık noktanın göründüğü yeri işaretler

// veri işlemeden önceki orijinal değer

Görüntüle();

}

}

Önerilen: