Obsah:
- Krok 1:
- Krok 2: Test výstupu nástroja
- Krok 3: Kalibrácia
- Krok 4: Programovanie Arduina
- Krok 5: Niekoľko ďalších fotografií
- Krok 6: zapadnutie
- Krok 7: Len fotografie
- Krok 8: Záverečné slová
Video: Generátor/tester 4-20 ma používajúci Arduino: 8 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Na ebay sú k dispozícii generátory 4-20 mA, ale ja mám rád časť domácich potrieb a používanie dielov, ktoré mám okolo seba.
Chcel som otestovať analógové vstupy nášho PLC, aby sme overili naše hodnoty scada a otestovali výstup prístrojov 4-20mA. Na eBay je veľa meničov prúdu na napätie a meničov napätia na prúd pre arduino, ale je potrebné ich kalibrovať. Môžem to použiť na kalibráciu ktoréhokoľvek z týchto prevodníkov, ktoré sa nachádzajú na ebay a podobne.
Rozhodol som sa, že si vyrobím generátor a tester. V tejto chvíli je to stále nedokončená výroba a prototyp.
Mal som starý zvukový systém 2.1, ktorý sa nepoužíval (malé reproduktory). Jeden z reproduktorových boxov som teda použil ako ozvučnicu. Mal som tiež zosilňovač, ktorý zomrel kvôli blesku, odstránil som z neho zosilňovač, aby bolo pripojenie hračkou. Mám v úmysle v budúcnosti vyrobiť DPS a lepší kryt.
Zásoby:
Zoznam položiek.
LCD // 20x4 (kód upravte, ak je váš menší)
LM7808 // 8voltový regulátor
LED // Akýkoľvek typ alebo veľkosť
Rezistor pre LED // Vhodný pre typ LED a 8 voltov
Rezistor 100 ohmov + odpor 47 ohmov v sérii // Bude použitý ako skratovací odpor
10K odpor // analógový Arduino na ochranu pred vysokým napätím
Odpor 22K // Zastavenie plávania A0
Trimpot 100 ohm + 47 ohm odpor v sérii // simulátor PT100
35 voltový kondenzátor // Použil som 470uF, len aby boli kolísania napájacieho napätia nízke
RTD (prevodník PT100) // Na rozpätí nezáleží (rozsah)
DIODE (na ochranu polarity)
INA219
Arduino
Krok 1:
Podľa schémy by ste mali začať s tým, kam pridať diely a zapojiť ich.
LM7808 umožňuje vstup maximálne 25 voltov, čo je v poriadku pre systémy PLC, spravidla používajú 24voltové napájacie zdroje. Pridajte k regulátoru chladič a nepoužívajte ho dlhší čas. Klesnutie 16 voltov spôsobuje, že regulátor generuje veľa tepla.
Vstupné napájanie napája regulátor a pripája sa k VIN INA219, v tejto konfigurácii bude INA219 tiež schopný merať správne napájacie napätie mínus pokles napätia z diódy. Mali by ste zmerať pokles napätia vašej diódy a pridať ho do kódu, aby ste získali správne odčítanie napájacieho napätia.
Od VAUT INA219 po RTD+ zapína RTD. RTD- uzemnenie dokončuje obvod.
Na testovanie analógovej karty PLC by ste zapojili RTD- na vstup na analógovej karte a uzemnenie z karty na arduino uzemnenie. (Nezabudnite odpojiť všetky nástroje pripojené k testovanému kanálu).
R5 a LED1, indikujúci systém je napájaný.
Regulátor sa napája na arduino VIN (arduino má vstavaný regulátor na 5 voltov).
Arduino 5V pin ide do INA219 na napájanie palubného čipu. INA219 GND na arduino zem.
Orezanie stierača hrnca na RTD PIN1 a Orezanie kolíka 3 na RTD pin 2 bude simulovať pripojenie PT100. (Vymeňte káble, ak otáčaním ozdobného hrnca v smere hodinových ručičiek nezvýšite mA).
Krok 2: Test výstupu nástroja
Na testovanie výstupu prístroja sú potrebné ďalšie diely, ako napríklad bočníkový odpor. Bežné rezistory 0,25 W budú svoju prácu vykonávať dobre. Môžete nechať bočníkový odpor a pridať druhý INA219 na testovanie výstupu prístroja. Zostal mi iba jeden, takže som namiesto toho použil odpor.
Testovanie pomocou skratu je možné vykonať iba na negatívnej strane zariadenia. Ak použijete pozitívnu stránku, dodáte svojmu arduinu viac ako 4 -násobok povoleného napätia a vypustíte dym.
Pridajte bočníkový odpor do série so záporným vodičom prístroja. Strana bočníka, ktorá je najbližšie k zariadeniu, sa stane pozitívnym analógom pre arduino. Druhá strana bočníka, ktorá je najbližšie k napájaciemu zdroju, sa stane arduinovou zemou dopĺňajúcou analógový vstupný obvod.
150 ohmový bočníkový odpor je úplné maximum, ktoré by ste mali použiť pri použití arduina. Rezistor má pokles napätia lineárny k mA, ktorý ním preteká. Čím väčšia je mA, tým väčšie je napätie.
Pri prúde 20mA # 150ohm*0,02A = 3volt do arduina.
Pri prúde 4mA # 150ohm*0,004A = 0,6volt na arduino.
Teraz môžete chcieť, aby sa napätie priblížilo k 5 voltom, aby ste nám mohli poskytnúť celý rozsah arduino ADC. (Nie je to dobrý nápad).
RTD môžu dosiahnuť výstup 30,2 mA (moje áno). 150 ohmov*0,03A = 4,8 voltov. To je tak blízko, ako by som chcel byť.
Ďalší web uviedol, že sa používa odpor 250 ohmov.
Pri prúde 20 mA # 250 ohmov*0,02 A = 5 voltov na arduino.
Pri prúde 30 mA # 250 ohmov*0,03 A = 7,5 voltu na arduino.
Riskujete spálenie ADC a arduina.
Ak chcete otestovať nástroj v teréne, vezmite si so sebou 12voltovú batériu a pripojte ju k napájaciemu vstupu. Použitie externého zdroja napájania neovplyvní aktuálne nastavenie PLC.
Ak chcete otestovať analógovú vstupnú kartu v teréne, vezmite si so sebou 12voltovú batériu. Odpojte prístroj + od obvodu. Pripojte uzemnenie k uzemneniu prístroja a RTD- k odpojenému vodiču prístroja.
Krok 3: Kalibrácia
Ak chcete kalibrovať čítanie skratového rezistora, zapojte RTD- k analógovému skratu. Nastavte trimr tak, aby generovaná mA bola 4mA. Ak sa hodnota mA vášho zariadenia nerovná, upravte prvú hodnotu v kóde na riadku 84. Zvýšením tejto hodnoty sa zníži hodnota mA.
Potom nastavte svoj trimovací hrniec na generovanie 20mA. Ak sa mA vášho zariadenia nerovná, upravte druhú hodnotu v kóde na riadku 84.
Takže vašich 4-20 mA sa teraz stane 0,6-3 voltov (teoreticky). Rozsah viac než dostatočný. Použitím knižnice od eRCaGuy vám prevzorkovanie poskytne lepšie a stabilnejšie odčítanie.
Dúfam, že ste si to prečítali. Toto je môj prvý návod, takže si to prosím v kľude vezmite, ak som niekde urobil chybu alebo som niečo vynechal.
Tento projekt pravdepodobne nie je najvhodnejší spôsob, ako to urobiť, ale funguje to pre mňa a bola to zábava.
Niektoré nápady, ktoré mám navyše…
Pridajte servo na otáčanie ozdobného hrnca vo vnútri škatule.
Pridajte tlačidlá na otáčanie serva doľava alebo doprava.
Pridajte k chladiču regulátora digitálny snímač teploty, ktorý vás upozorní na nebezpečné teplo.
Krok 4: Programovanie Arduina
#zahrnúť
// #include // Odporučte komentár, ak používate LCD displej s posuvným registrom.
#zahrnúť
#zahrnúť
#zahrnúť
#zahrnúť
// A4 = (SDA)
// A5 = (SCL)
Adafruit_INA219 ina219;
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
// LiquidCrystal_SR lcd (3, 4, 2); // Ak používate LCD s posuvným registrom, odošlite komentár.
// | | | _ Západka
// | / _ Hodinový špendlík
// / _ Dáta/Povoliť pin
bajty bitsOfResolution = 12; // prikázané prevzorkované rozlíšenie
bez znamienka dlhé numSamplesToAvg = 20; // počet vzoriek NA PREJAVOM RIEŠENÍ, ktoré chcete odobrať, a priemer
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
nepodpísané dlhé predchádzajúce Millis = 0;
float shuntvoltage = 0,0; // Z INA219
napätie float bus = 0,0; // Z INA219
float current_mA = 0,0; // Z INA219
napätie float load = 0,0; // Z INA219
float arduinovoltage = 0,0; // Výpočet napätia z pinu A0
Podpísané dlhé A0analogReading = 0;
byte analogIn = A0;
float ma_mapped = 0,0; // Mapujte napätie od A0 do 4-20mA
neplatné nastavenie () {
adc.setADCSpeed (ADCSpeed);
adc.setBitsOfResolution (bitsOfResolution);
adc.setNumSamplesToAvg (numSamplesToAvg);
uint32_t currentFrequency;
ina219.begin ();
ina219.setCalibration_32V_30mA (); // Upravená knižnica pre väčšiu presnosť mA
lcd.begin (20, 4); // inicializácia LCD
lcd.clear ();
lcd.home (); // Choď domov
lcd.print ("*********************");
oneskorenie (2000);
lcd.clear ();
}
prázdna slučka ()
{
nepodpísaný dlhý prúd Millis = millis ();
konštantný dlhý interval = 100;
//&&&&&&&&&&&&&&&&&
Čítajte zariadenia I2C v intervaloch a vykonajte niekoľko výpočtov
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (currentMillis - previousMillis> = interval) {
previousMillis = súčasnýMillis;
Interval ();
}
Print_To_LCD (); // Pravdepodobne nepotrebujem aktualizovať LCD tak rýchlo a je možné ho presunúť pod Interval ()
}
prázdny
Interval () {
shuntvoltage = ina219.getShuntVoltage_mV ();
zbernicové napätie = ina219.getBusVoltage_V ();
current_mA = ina219.getCurrent_mA ();
záťažové napätie = (napätie zbernice + (skratové napätie / 1000)) + 0,71; // +0,71 je môj pokles napätia diódy
A0analogReading = adc.newAnalogRead (analogIn);
arduinovoltage = (5,0 * A0analogReading); // Vypočítané na mV
ma_mapped = mapa (arduinovoltage, 752, 8459, 30, 220) / 10,0; // Mapa nemôže používať plaváky. Pridajte 0 za mapovanú hodnotu a vydelte 10, aby ste získali odčítané číslo.
// Mapovanie z výpočtu napätia poskytuje stabilnejšie odčítanie ako pri použití surového čítania adc.
if (shuntvoltage> = -0,10 && shuntvoltage <= -0,01) // Bez zaťaženia má INA219 tendenciu čítať nižšie ako -0,01, moje áno.
{
current_mA = 0;
napätie zbernice = 0;
záťažové napätie = 0;
shuntvoltage = 0;
}
}
prázdny
Print_To_LCD () {
lcd.setCursor (0, 0);
if (ma_mapped <1,25) {// Bez prúdu je to moja hodnota mA, takže to jednoducho vyhodím.
lcd.print (" * generátor 4-20mA *");
}
inak {
lcd.print ("** analógový tester **");
}
lcd.setCursor (0, 1);
lcd.print („Zariadenie:“);
lcd.setCursor (10, 1);
if (ma_mapped <1,25) {
lcd.print („žiadne zariadenie“);
}
inak {
lcd.print (ma_mapped);
}
lcd.print ("mA");
lcd.setCursor (0, 2);
lcd.print ("Generovať:");
lcd.setCursor (10, 2);
lcd.print (current_mA);
lcd.print ("mA");
lcd.setCursor (0, 3);
lcd.print ("Dodávka:");
lcd.setCursor (10, 3);
lcd.print (záťažové napätie);
lcd.print ("V");
}
Krok 5: Niekoľko ďalších fotografií
Terminál reproduktora zosilňovača. LED poháňaná generátorom prúdu (RTD). LED diódy nahradí kabeláž analógovej karty.
Konektor úplne vľavo slúži na vstup napájania. Terminály napravo slúžia na vstup prístroja.
Krok 6: zapadnutie
Zdá sa, že všetko sedí. Na dočasné držanie niektorých vecí pohromade som použil silikón. Orezávací hrniec je silikónovaný vpravo hore. Bola predvŕtaná malá diera. Prúd môžem nastaviť z hornej časti krabice.
Krok 7: Len fotografie
Krok 8: Záverečné slová
Testoval som výkon tohto zariadenia s PLC Allan Bradley. Výsledky boli veľmi dobré. Mám plný rozsah. Tiež som testoval toto zariadenie so snímačom tlaku 4-20mA, ktorý má vstavaný LCD displej. Výsledky boli opäť veľmi dobré. Moje hodnoty boli preč o niekoľko desatinných miest.
Svoj arduino kód píšem do záložiek. V PLC sa nazývajú čiastkové rutiny. Uľahčuje ladenie pre mňa.
Priložené sú textové súbory týchto kariet.
Odporúča:
Automatický herný ovládač Google T Rex používajúci Arduino: 7 krokov
Automatický herný ovládač Google T Rex pomocou Arduina: nechajte ho postaviť
Audio prehrávač používajúci Arduino s kartou Micro SD: 7 krokov (s obrázkami)
Zvukový prehrávač využívajúci Arduino s kartou Micro SD: PRIHLÁSTE SA na odber môjho kanála pre ďalšie projekty ……………………. Mnoho ľudí chce prepojiť kartu SD s arduino alebo chcete nejaký zvukový výstup cez arduino. Tu je teda najľahší a najlacnejší spôsob prepojenia karty SD s arduino. môžeš nám
Robot sledujúci ľudí používajúci Arduino Uno pod 20 $: 9 krokov
Robot sledujúci ľudí pomocou Arduino Uno Pod 20 $: tak som tento robot vyrobil asi pred rokom a páčilo sa mi, že vás môže sledovať kdekoľvek a kdekoľvek. toto je najlepšia alternatíva pre psa. je to stále so mnou až doteraz. Mám tiež kanál youtube, kde môžete vidieť postup jeho vytvárania vo vi
Teplotný snímač TMP36 a LCD displej používajúci Arduino (Tinkercad): 7 krokov
Teplotný snímač TMP36 a LCD displej využívajúci Arduino (Tinkercad): Zdravím všetkých! Sme študenti z University Tun Hussein Onn Malajsie (UTHM), ktorí realizujú projekt s cieľom demonštrovať, ako môžeme simulovať teplotný senzor, LCD a Arduino pomocou Tinkercad ako súčasti nášho učebného plánu pre UQD0801 (Robocon 1) (
(Ascensor) Model výťahu používajúci Arduino, App Inventor a ďalší bezplatný softvér: 7 krokov
(Ascensor) Model výťahu využívajúci Arduino, App Inventor a ďalší bezplatný softvér: ESPConstrucción, paso a paso, de ascensor a escala usando arduino (como controlador del motor y entradas y salidas por bluetooth), invent app (para diseño de aplicación como panel de control del ascensor) y freeCAD y LibreCAD para diseño.Abajo