با سلام
یه کد نوشتم برای راه اندازی سنسور جریان با آردوینو و سون سگمنت که با استفاده از یه باطری 9 ولت کتابی میشه یه آمپر متر همراه ساخت که خودم یکی ساختم
اینم از کد هاش
کد:
#include <SevSeg.h>
SevSeg sevseg; //ساخت یک آبجکت
float current_zero = 511; //relative digital zero of the arudino input from ACS712
float adcvalue = 0;
float adcvolt = 0;
float current = 0;
unsigned long previousMillis = 0;
const long interval = 500;
void setup()
{
// Serial.begin(9600);
byte numDigits = 4; //تعداد بلاک سون سگمنت
byte digitPins[] = {9, 10, 11, 12}; //شماره پین های مشترک
byte segmentPins[] = {0, 1, 2, 3, 4, 5, 6, 7}; //شماره پین های aتاg
sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins);
/*توسط این تابع کانفیگ سون سگمنت انجام می*شود. آرگمان اول نوع سون سگمنت را مشخص می*کند ، اگر
آند مشترک باشد به جای آرگمان Type از COMMON_ANODE ، اگر کاتد مشترک باشد از
COMMON_CATHODE استفاده می*شود ، هچنین می*تواند دارای مقادیر زیر باشد:
N_TRANSISTORS ، P_TRANSISTORS ، NP_COMMMON_CATHODE
و NP_COMMMON_ANODE
*/
sevseg.setBrightness(100); //تنظیم نور سون سگمنت(در صورت استفاده از ترانزیستور)
}
void loop()
{
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
adcvalue = (analogRead(0) - current_zero);
adcvolt = ((adcvalue * 5) / 1024);
current = (adcvolt / 0.066);
//Serial.print("CURRENT= ");
// Serial.print(current);
// Serial.println(" A");
}
sevseg.setNumber(current, 2); //نمایش متغییر بر روی سون سگمنت(آرگومان اول مقدار عدد و آرگومان دوم مقدار اعشار)
sevseg.refreshDisplay(); //تازه سازی سون سگمنت
delay(1);
}
فایل ضمیمه:
current_sensor
http://s2.picofile.com/file/8264477392/7seg_pins.png