Мазмұны:
- 1 -қадам:
- 2 -қадам: құралдың шығуын тексеру
- 3 -қадам: калибрлеу
- 4 -қадам: Arduino бағдарламалау
- 5 -қадам: тағы бірнеше фотосуреттер
- 6 -қадам: кірістіру
- 7 -қадам: тек фотосуреттер
- 8 -қадам: Қорытынды сөздер
Бейне: 4-20ma генераторы/сынаушы Arduino көмегімен: 8 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Ebay-де 4-20мА генераторлар бар, бірақ мен өз қолыммен бөлшектердің бөлшектерін жақсы көремін.
Мен Scada көрсеткіштерін тексеру үшін және 4-20 мА аспаптардың шығуын тексеру үшін PLC аналогтық кірістерін тексергім келді. Ebay -де arduino үшін кернеу түрлендіргіштер мен ток түрлендіргіштерге кернеу бар, бірақ олар калибрлеуді қажет етеді. Мен мұны ebay -ден табылған түрлендіргіштердің кез келгенін калибрлеу үшін қолдана аламын.
Мен генератор мен сынаушыға DIY жасаймын деп шештім. Уақыт өте келе бұл әлі де аяқталмаған жұмыс және прототип.
Менде қолданылмайтын ескі 2.1 дыбыстық жүйесі болды (шағын динамиктер). Сондықтан мен қорап ретінде динамиктер қораптарының бірін қолдандым. Менде найзағайдан өлген күшейткіш болды, мен желді қосу үшін динамик терминалын сол күшейткіштен алып тастадым. Мен болашақта ПХД жасауды және одан да жақсы қоршауды жасағым келеді.
Жабдықтар:
Бөлшектер тізімі.
СКД // 20х4 (егер сіздікі кішірек болса, кодты бейімдеңіз)
LM7808 // 8 вольтты реттегіш
Жарық диоды // Кез келген түрі немесе өлшемі
Жарықдиодты резистор // Жарықдиодты типке және 8 вольтке сәйкес келеді
100 Ом резисторы + 47 Ом резисторы сериялы // Шунт резисторы ретінде қолданылады
10K резистор // Жоғары кернеуден қорғаудағы Arduino аналогы
22K резисторы // A0 өзгермеуін тоқтату үшін
Trimpot 100 Ом + 47 Ом резисторы сериялы // PT100 тренажері
35 вольттық конденсатор // Мен кернеудің ауытқуын төмендету үшін 470uF қолдандым
RTD (PT100 түрлендіргіші) // Аралық маңызды емес (диапазон)
Диод (полярлықты қорғау үшін)
INA219
Ардуино
1 -қадам:
Схемаға сәйкес бөлшектерді қай жерге қосуға және сымға қосуды бастау керек.
LM7808 максималды 25 вольтты енгізуге мүмкіндік береді, бұл PLC жүйелері үшін жақсы, олар әдетте 24 вольтты қуат көздерін пайдаланады. Жылытқышты реттегішке қосыңыз және оны ұзақ уақыт пайдаланбаңыз. 16 вольтты түсіру реттегіштен көп жылу шығаруға әкеледі.
Кіріс көзі реттегішті береді және INA219 VIN -ге қосылады, бұл конфигурацияда INA219 сонымен қатар диодтан кернеудің төмендеуін ескере отырып, кернеудің дұрыс кернеуін өлшей алады. Сіз диод кернеуінің төмендеуін өлшеп, кернеудің дұрыс оқылуын алу үшін оны кодқа қосуыңыз керек.
INA219 VOUT -тан RTD+ -ға дейін RTD -ны күшейтеді. RTD- жерге дейін тізбекті аяқтайды.
PLC аналогтық картасын тексеру үшін сіз RTD- аналогтық картаның кірісіне және картадан arduino жерге қосасыз. (Тексерілетін арнаға бекітілген кез келген құралды ажыратқаныңызға көз жеткізіңіз).
R5 және LED1, жүйенің қосылғанын көрсетеді.
Реттегіш arduino VIN -ге беріледі (arduino 5 вольтты реттегішке орнатылған).
Arduino 5V түйрегіші борттық чипті қуаттандыру үшін INA219-ге барады. INA219 GND arduino жерге.
RTD PIN1 -ге арналған тазалағыш ыдыс тазалағыш және RTD 2 -ші шкафқа арналған 3 -түйреуіш PT100 байланысын модельдейді. (Егер кастрюльді сағат тілімен бұру мА жоғарылатпаса, сымдарды ауыстырыңыз).
2 -қадам: құралдың шығуын тексеру
Аспаптың шығуын тексеру үшін шунт резисторы сияқты қосымша бөлшектер қажет. 0,25 Вт қалыпты резисторлар бұл тапсырманы жақсы орындайды. Құрал шығысын тексеру үшін шунт резисторынан шығып, екінші INA219 қосуға болады. Менде тек біреуі қалды, мен резисторды қолдандым.
Шунт көмегімен тестілеу тек құрылғының теріс жағында жүргізілуі мүмкін. Егер сіз оң жағын қолдансаңыз, сіз ардуиноға рұқсат етілген кернеуден 4 есе артық қоректендіріп, түтін шығарасыз.
Құралдың теріс сымы бар шунтты резисторды тізбектей қосыңыз. Шунттың құрылғыға жақын жағы arduino үшін оң аналог болады. Қуат көзіне жақын шунттың екінші жағы аналогты кіріс тізбегін аяқтайтын arduino жерге айналады.
150 Ом шунт резисторы - бұл ардуиноны қолданған кезде қолданылатын абсолюттік максимум. Резисторда кернеудің төмендеуі бар, ол арқылы өтетін мА -ға дейін. МА неғұрлым көп болса, кернеу соғұрлым жоғары болады.
20мА ток кезінде # 150ohm*0,02А = 3 вольт ардуиноға.
4мА ток кезінде # 150ohm*0,004A = 0,6 вольт ардуиноға.
Енді сіз кернеудің 5 вольтке жақындағанын қалауыңыз мүмкін, осылайша сіз бізге arduino ADC толық диапазонын бере аласыз. (Жақсы ой емес).
RTD 30,2 мА шығысқа жетуі мүмкін (шахтада). 150 Ом*0,03А = 4,8 вольт. Бұл мен қалағандай жақын.
Басқа веб -сайтта 250 Ом резисторды қолдану көрсетілген.
20мА ток кезінде # 250ohm*0.02A = 5 вольт ардуиноға.
30мА ток кезінде # 250ohm*0.03A = 7.5 вольт ардуиноға.
Сіз ADC пен arduino -ны өртеу қаупі бар.
Аспапты далада сынау үшін 12 вольтты аккумуляторды алып, оны кіріс көзіне қосыңыз. Сыртқы қуат көзін пайдалану қазіргі PLC қондырғысына әсер етпейді.
Аналогтық кіріс картасын далада тексеру үшін өзіңізбен бірге 12 вольтты батареяны алыңыз. Аспапты + тізбектен ажыратыңыз. Аспапты жерге және RTD- ажыратылған аспап сымына жерге қосыңыз.
3 -қадам: калибрлеу
Шунт резисторының көрсеткішін калибрлеу үшін RTD- аналогты шунтқа жалғаңыз. Жасалған мА 4мА болатындай етіп кесу қазандығын орнатыңыз. Егер сіздің mA құрылғыңыз тең емес болса, онда 84 -жолдағы кодтағы бірінші мәнді өзгертіңіз. Бұл мәнді ұлғайту mA көрсеткішін төмендетеді.
Содан кейін кастрюльді 20 мА шығаратын етіп орнатыңыз. Егер сіздің мА құрылғыңыз тең болмаса, 84 -жолдағы кодтағы екінші мәнді өзгертіңіз.
Сіздің 4-20мА енді 0,6-3 вольтке айналады (теориялық). Диапазон жеткілікті. ERCaGuy кітапханасын қолдана отырып, шамадан тыс іріктеу сізге жақсы және тұрақты оқуға мүмкіндік береді.
Сіз мұны оқыдыңыз деп үміттенемін. Бұл менің бірінші нұсқаулығым, сондықтан егер мен бір жерде қате жіберген болсам немесе бірдеңені қалдырып кетсем, сабыр етіңіз.
Бұл жоба, бәлкім, бұл үшін ең жақсы әдіс емес, бірақ бұл мен үшін жұмыс істейді және оны орындау қызықты болды.
Менде қосымша идеялар бар …
Қорап ішіндегі кастрюльді айналдыру үшін серво қосыңыз.
Серводы солға немесе оңға бұру үшін түймелерді қосыңыз.
Қатерлі ыстық туралы ескерту үшін реттегіш радиаторға сандық температура датчигін қосыңыз.
4 -қадам: Arduino бағдарламалау
#қосу
// #include // Егер сіз ауысымдық регистрі бар СКД қолдансаңыз, түсініктеме бермеңіз.
#қосу
#қосу
#қосу
#қосу
// A4 = (SDA)
// A5 = (SCL)
Adafruit_INA219 ina219;
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
// LiquidCrystal_SR lcd (3, 4, 2); // Егер сіз ауысымдық регистрі бар СКД қолдансаңыз, түсініктеме бермеңіз.
// | | | _ Бекіткіш түйреуіш
// | / _ Сағат түйрегіші
// / _ Деректер/Іске қосу
байт bitsOfResolution = 12; // бұйрықтан асып кеткен ажыратымдылық
белгісіз ұзын numSamplesToAvg = 20; // сіз қабылдағыңыз келетін және орташа алынған үлгілердің саны
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
белгісіз ұзақ алдыңғыMillis = 0;
қалқымалы шунт кернеуі = 0,0; // INA219 бастап
қалқымалы шинаның кернеуі = 0,0; // INA219 бастап
өзгермелі ток_мА = 0,0; // INA219 бастап
қалқыма жүктеме кернеуі = 0,0; // INA219 бастап
өзгермелі ардуиновольт = 0,0; // A0 түйреуіштен кернеуді есептеу
Қол қойылмаған ұзақ A0analogReading = 0;
байт аналогыIn = A0;
float ma_mapped = 0.0; // Карта кернеуі A0-дан 4-20мА-ға дейін
жарамсыз орнату () {
adc.setADCSpeed (ADCSpeed);
adc.setBitsOfResolution (bitsOfResolution);
adc.setNumSamplesToAvg (numSamplesToAvg);
uint32_t currentFrequency;
ina219.begin ();
ina219.setCalibration_32V_30mA (); // MA бойынша дәлірек болу үшін өзгертілген кітапхана
lcd.begin (20, 4); // СКД инициализациялау
lcd.clear ();
lcd.home (); // үйге бару
lcd.print («********************»);
кешіктіру (2000);
lcd.clear ();
}
бос цикл ()
{
белгісіз ұзақ токMillis = millis ();
const ұзақ аралығы = 100;
//&&&&&&&&&&&&&&&&&
I2C құрылғыларын аралықпен оқып, бірнеше есептеулер жүргізіңіз
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (currentMillis - previousMillis> = интервал) {
алдыңғыMillis = currentMillis;
Интервал ();
}
Print_To_LCD (); // Маған СКД -ны тез арада жаңартудың қажеті жоқ шығар және оны интервалдың астына жылжытуға болады ()
}
жарамсыз
Интервал () {
shuntvoltage = ina219.getShuntVoltage_mV ();
busvoltage = ina219.getBusVoltage_V ();
current_mA = ina219.getCurrent_mA ();
жүктеме кернеуі = (шиналық кернеу + (шунт кернеуі / 1000)) + 0,71; // +0.71 - бұл диодтың кернеуінің төмендеуі
A0analogReading = adc.newAnalogRead (analogIn);
arduinovoltage = (5.0 * A0analogReading); // МВ -ға есептелген
ma_mapped = карта (arduinovoltage, 752, 8459, 30, 220) / 10.0; // Карта қалқымалы файлдарды пайдалана алмайды. Салыстырылған мәннің артына 0 қосыңыз және өзгермелі оқуды алу үшін 10 -ға бөліңіз.
// Кернеуді есептеуден картаға түсіру ADC шикі мәнін пайдалану арқылы тұрақты оқуды береді.
if (shuntvoltage> = -0.10 && shuntvoltage <= -0.01) // INA219 жүктемесіз -0.01 -ден төмен оқуға бейім, менікі жақсы.
{
ағымдағы_мА = 0;
шиналық кернеу = 0;
жүктеме кернеуі = 0;
шунт кернеуі = 0;
}
}
жарамсыз
Print_To_LCD () {
lcd.setCursor (0, 0);
if (ma_mapped <1.25) {// Ағымсыз бұл менің мА оқуым, сондықтан мен оны алып тастадым.
lcd.print (« * 4-20mA генераторы» «);
}
басқа {
lcd.print («** аналогты сынаушы **»);
}
lcd.setCursor (0, 1);
lcd.print («Құрылғы:»);
lcd.setCursor (10, 1);
егер (ma_mapped <1.25) {
lcd.print («құрылғы жоқ»);
}
басқа {
lcd.print (ma_mapped);
}
lcd.print («мА»);
lcd.setCursor (0, 2);
lcd.print («Жасау:»);
lcd.setCursor (10, 2);
lcd.print (current_mA);
lcd.print («мА»);
lcd.setCursor (0, 3);
lcd.print («Жеткізу:»);
lcd.setCursor (10, 3);
lcd.print (жүктеме кернеуі);
lcd.print («V»);
}
5 -қадам: тағы бірнеше фотосуреттер
Күшейткіш динамик терминалы. Жарықдиодты ток генераторы (RTD) басқарады. Аналогты карта сымы жарық диодты ауыстырады.
Терезенің сол жағында терминал қоректену кірісіне арналған. Оң жақтағы терминалдар құралдарды енгізуге арналған.
6 -қадам: кірістіру
Бәрі сәйкес келетін сияқты. Мен кейбір заттарды уақытша ұстау үшін силикон қолдандым. Кесетін қазан жоғарғы оң жақта силиконмен қапталған. Кішкене тесік алдын ала тесілген. Мен қораптың жоғарғы жағынан токты реттей аламын.
7 -қадам: тек фотосуреттер
8 -қадам: Қорытынды сөздер
Мен бұл құрылғының шығуын Allan Bradley PLC көмегімен тексердім. Нәтижелер өте жақсы болды. Мен бұл диапазонда 4-20мА қысым датчигі бар құрылғыны сынап көрдім. Тағы да нәтижелер өте жақсы болды. Менің оқылымдарым ондық бөлшектермен шектелді.
Мен arduino кодын қойындыларға жазамын. PLC -де олар қосалқы тәртіп деп аталады. Мен үшін жөндеуді жеңілдетеді.
Сол қойындылардың мәтіндік файлдары қоса беріледі.
Ұсынылған:
Arduino DMX 512 сынаушы мен контроллер ENG: 19 қадам
Arduino DMX 512 Tester and Controller ENG: Жаңартулар, файлдар, кодтар, схемалар … Version d EspañolFacebook DMX-512 хаттамасы бойынша тестілеуге және жарық көрсетуге арналған бақылау құралы, жарықтандырудың тұрақты немесе уақытша қондырғыларында жылдам сынақтар үшін өте қолайлы. Бұл жоба портабты болу қажеттілігінен туындайды
STC MCU көмегімен DIY функционалды генераторы: 7 қадам (суреттермен)
STC MCU бар DIY функционалды генераторы: бұл STC MCU көмегімен жасалған функция генераторы. Тек бірнеше компоненттер қажет және схема қарапайым. Спецификацияның шығысы: бір арналы квадраттық толқын пішіні жиілігі: 1Гц ~ 2МГц толқындық толқын пішіні жиілігі: 1Гц ~ 10кГц амплитудасы: VCC, шамамен 5В жүктеме
Arduino көмегімен интерактивті лазер парағы генераторы: 11 қадам (суреттермен)
Arduino көмегімен интерактивті лазерлік парақ генераторы: Лазерлерді керемет визуалды эффекттер жасау үшін пайдалануға болады. Бұл жобада мен интерактивті және музыка ойнайтын лазерлік дисплейдің жаңа түрін жасадым. Құрылғы екі лазерді айналдырып, құйынды тәрізді екі жарық парағын құрайды. Мен қашықтық датчигін енгіздім
Ауа райына негізделген музыка генераторы (ESP8266 негізіндегі Midi генераторы): 4 қадам (суреттермен)
Ауа -райына негізделген музыкалық генератор (ESP8266 негізіндегі Midi генераторы): Сәлеметсіз бе, мен бүгін ауа -райына негізделген музыкалық генераторды қалай жасау керектігін түсіндіремін, ол ESP8266 негізінде жасалған, ол Arduino сияқты, ол температураға, жаңбырға жауап береді. және жарық қарқындылығы.Ол бүкіл әндер мен аккордтар жасайды деп күтпеңіз
RGB LED көмегімен керемет дыбыс генераторы жобасын қалай жасауға болады: 7 қадам
RGB LED көмегімен керемет дыбыс генераторы жобасын қалай жасауға болады: Сәлем досым, бүгін мен RGB LED және BC547 транзисторы арқылы керемет дыбыс генераторының тізбегін жасаймын. Бұл тізбек велосипед мүйізіне ұқсас дыбыс береді