Obsah:
- Krok 1:
- Krok 2: Test výstupu nástroje
- Krok 3: Kalibrace
- Krok 4: Programování Arduina
- Krok 5: Několik dalších fotografií
- Krok 6: Zapojení
- Krok 7: Jen fotky
- Krok 8: Závěrečná slova
Video: Generátor/tester 4-20 ma pomocí Arduina: 8 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
Na ebay jsou k dispozici generátory 4-20mA, ale já mám rád část pro kutily a používání dílů, které mám kolem sebe.
Chtěl jsem otestovat analogové vstupy našeho PLC, abychom ověřili naše hodnoty scada a otestovali výstup přístrojů 4-20mA. Na ebay je spousta měničů proudu na napětí a měničů napětí na arduino, ale potřebují kalibraci. Můžu to použít ke kalibraci kteréhokoli z těchto převodníků nalezených na ebay a podobných.
Rozhodl jsem se, že si vyrobím generátor a tester. V tuto chvíli je to stále nedokončená výroba a prototyp.
Měl jsem starý zvukový systém 2.1, který nebyl používán (malé reproduktory). Jako skříň jsem tedy použil jeden z reproduktorových boxů. Měl jsem také zesilovač, který zemřel kvůli blesku, odstranil jsem reproduktorový terminál z tohoto zesilovače, aby bylo připojení hračkou. V budoucnu hodlám vyrobit desku plošných spojů a lepší skříň.
Zásoby:
Seznam dílů.
LCD // 20x4 (přizpůsobte kód, pokud je váš menší)
LM7808 // 8voltový regulátor
LED // Jakýkoli typ nebo velikost
Rezistor pro LED // Vhodný pro typ LED a 8volt
Rezistor 100 ohmů + odpor 47 ohmů v sérii // Bude použit jako bočníkový odpor
Rezistor 10K // Analog Arduino v ochraně proti vysokému napětí
22K odpor // Zastavení plovoucího A0
Trimpot odpor 100 ohmů + 47 ohmů v sérii // simulátor PT100
35 voltový kondenzátor // Použil jsem 470uF, jen abych udržel kolísání napájecího napětí
RTD (převodník PT100) // Na rozsahu nezáleží (rozsah)
DIODE (pro ochranu polarity)
INA219
Arduino
Krok 1:
Podle schématu byste měli začít s tím, kam přidat součásti a zapojit je.
LM7808 umožňuje vstup maximálně 25 voltů, což je v pořádku pro systémy PLC, obvykle používají 24voltové napájecí zdroje. Přidejte do regulátoru chladič a delší dobu jej nepoužívejte. Pokles 16voltů způsobí, že regulátor generuje velké množství tepla.
Vstupní napájení napájí regulátor a připojuje se k VIN INA219, v této konfiguraci bude INA219 také schopen měřit správné napájecí napětí mínus pokles napětí z diody. Měli byste změřit pokles napětí diody a přidat jej do kódu, abyste získali správné odečty napájecího napětí.
Od INA219 VOUT po RTD+ zapíná RTD. RTD- k zemi dokončí obvod.
Chcete-li otestovat analogovou kartu PLC, připojte RTD- ke vstupu na analogové kartě a uzemnění z karty na arduino uzemnění. (Ujistěte se, že jste odpojili jakýkoli nástroj připojený k testovanému kanálu).
R5 a LED1, indikující systém je napájen.
Regulátor se napájí do arduino VIN (arduino má vestavěný regulátor na 5 voltů).
Arduino 5V pin jde do INA219 k napájení palubního čipu. INA219 GND na arduino zem.
Trim pot wiper to RTD PIN1 and Trim pot pin 3 to RTD pin 2 will simulate a PT100 connection. (Vyměňte vodiče, pokud otáčením ozdobného hrnce ve směru hodinových ručiček nezvýšíte mA).
Krok 2: Test výstupu nástroje
K testování výstupu nástroje jsou zapotřebí další součásti, jako zkratový odpor. Normální rezistory 0,25 W budou fungovat dobře. Můžete nechat bočníkový odpor a přidat druhý INA219 pro testování výstupu nástroje. Zůstal mi jen jeden, takže jsem místo toho použil odpor.
Testování pomocí zkratu lze provádět pouze na negativní straně zařízení. Pokud použijete kladnou stránku, dodáte svému arduinu více než 4násobek povoleného napětí a vypustíte kouř.
Přidejte bočníkový odpor do série se záporným vodičem nástroje. Strana zkratu nejblíže zařízení se stane pozitivním analogem pro arduino. Druhá strana bočníku, která je nejblíže napájecímu zdroji, se stane zemí Arduino, která doplní analogový vstupní obvod.
150 ohmový bočníkový odpor je absolutní maximum, které by mělo být použito při použití arduina. Rezistor má úbytek napětí lineární k mA, který jím protéká. Čím větší je mA, tím větší je napětí.
Při proudu 20mA # 150ohm*0,02A = 3volt na arduino.
Při proudu 4mA # 150ohm*0,004A = 0,6volt na arduino.
Nyní můžete chtít, aby se napětí blížilo 5 voltům, abyste nám mohli nabídnout celý rozsah ADC arduina. (Není to dobrý nápad).
RTD mohou dosáhnout výstupu 30,2 mA (moje ano). 150 ohmů*0,03 A = 4,8 voltů. To je tak blízko, jak bych chtěl být.
Další web uvedl použití odporu 250 ohmů.
Při proudu 20mA # 250ohm*0,02A = 5volt na arduino.
Při proudu 30 mA # 250 ohmů*0,03 A = 7,5 voltu na arduino.
Riskujete spálení ADC a arduina.
Chcete -li otestovat nástroj v terénu, vezměte si s sebou 12voltovou baterii a připojte ji k napájecímu vstupu. Použití externího zdroje napájení neovlivní aktuální nastavení PLC.
Chcete -li vyzkoušet analogovou vstupní kartu v terénu, vezměte si s sebou 12voltovou baterii. Odpojte přístroj + od obvodu. Připojte kostru k uzemnění přístroje a RTD- k odpojenému vodiči přístroje.
Krok 3: Kalibrace
Chcete-li provést kalibraci odečítacího odporu, připojte analogový vstup RTD- k bočníku. Nastavte trimr tak, aby generovaná mA byla 4mA. Pokud mA vašeho zařízení není stejné, upravte první hodnotu v kódu na řádku 84. Zvýšení této hodnoty sníží odečet mA.
Poté nastavte svůj trimovací hrnec na generování 20mA. Pokud se mA vašeho zařízení nerovná, upravte druhou hodnotu v kódu na řádku 84.
Takže vašich 4-20mA bude nyní 0,6-3 voltů (teoreticky). Dosah více než dost. Pomocí knihovny od eRCaGuy vám převzorkování poskytne lepší a stabilní odečet.
Snad jste si to přečetli. Toto je můj první pokyn, takže si to prosím v klidu vezměte, pokud jsem někde udělal chybu nebo jsem něco vynechal.
Tento projekt pravděpodobně není nejlepší způsob, jak toho dosáhnout, ale funguje to pro mě a bylo zábavné to dělat.
Některé nápady mám navíc…
Přidejte servo pro otáčení ozdobného hrnce uvnitř krabice.
Přidejte tlačítka pro otáčení serva doleva nebo doprava.
Přidejte digitální chladič teploty do chladiče regulátoru, abyste varovali před nebezpečným teplem.
Krok 4: Programování Arduina
#zahrnout
// #include // Odkomentujte, pokud používáte LCD s posuvným registrem.
#zahrnout
#zahrnout
#zahrnout
#zahrnout
// A4 = (SDA)
// A5 = (SCL)
Adafruit_INA219 ina219;
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
// LiquidCrystal_SR lcd (3, 4, 2); // Odkomentujte, pokud používáte LCD s posuvným registrem.
// | | | _ Západka
// | / _ Hodinový kolík
// / _ Data/Povolit pin
byte bitsOfResolution = 12; // přikázané převzorkované rozlišení
nepodepsané dlouhé numSamplesToAvg = 20; // počet vzorků V PŘEŠIROVANÉM ROZLIŠENÍ, které chcete odebrat, a průměr
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
nepodepsané dlouhé předchozí Millis = 0;
float shuntvoltage = 0,0; // Z INA219
napětí plovoucí sběrnice = 0,0; // Z INA219
float current_mA = 0,0; // Z INA219
plovoucí zatěžovací napětí = 0,0; // Z INA219
float arduinovoltage = 0,0; // Výpočet napětí z pinu A0
Nepodepsané dlouhé A0analogReading = 0;
byte analogIn = A0;
float ma_mapped = 0,0; // Napětí mapy od A0 do 4-20mA
neplatné nastavení () {
adc.setADCSpeed (ADCSpeed);
adc.setBitsOfResolution (bitsOfResolution);
adc.setNumSamplesToAvg (numSamplesToAvg);
uint32_t currentFrequency;
ina219.begin ();
ina219.setCalibration_32V_30mA (); // Upravená knihovna pro větší přesnost na mA
lcd.begin (20, 4); // inicializace LCD
lcd.clear ();
lcd.home (); // Jdi domů
lcd.print ("*********************");
zpoždění (2000);
lcd.clear ();
}
prázdná smyčka ()
{
unsigned long currentMillis = millis ();
konst dlouhý interval = 100;
//&&&&&&&&&&&&&&&&&
Čtěte zařízení I2C v intervalech a proveďte nějaké výpočty
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (currentMillis - previousMillis> = interval) {
previousMillis = aktuálníMillis;
Časový úsek();
}
Print_To_LCD (); // Pravděpodobně nepotřebuji aktualizovat LCD tak rychle a lze jej přesunout pod Interval ()
}
prázdné
Časový úsek() {
shuntvoltage = ina219.getShuntVoltage_mV ();
busvoltage = ina219.getBusVoltage_V ();
current_mA = ina219.getCurrent_mA ();
zatěžovací napětí = (napětí sběrnice + (shuntvoltage / 1000)) + 0,71; // +0,71 je můj pokles napětí diody
A0analogReading = adc.newAnalogRead (analogIn);
arduinovoltage = (5,0 * A0analogReading); // Vypočítáno na mV
ma_mapped = mapa (arduinovoltage, 752, 8459, 30, 220) / 10,0; // Mapa nemůže používat plováky. Přidejte 0 za namapovanou hodnotu a vydělte 10, abyste získali plovoucí odečet.
// Mapování z výpočtu napětí poskytuje stabilnější odečet než použití hrubého čtení adc.
if (shuntvoltage> = -0,10 && shuntvoltage <= -0,01) // Bez zátěže má INA219 tendenci číst pod -0,01, moje ano.
{
current_mA = 0;
sběrnicové napětí = 0;
zatěžovací napětí = 0;
shuntvoltage = 0;
}
}
prázdné
Print_To_LCD () {
lcd.setCursor (0, 0);
if (ma_mapped <1,25) {// Bez proudu je to moje hodnota mA, takže jsem to prostě vyhodil.
lcd.print (" * generátor 4-20mA *");
}
jinak {
lcd.print ("** Analogový tester **");
}
lcd.setCursor (0, 1);
lcd.print ("Zařízení:");
lcd.setCursor (10, 1);
if (ma_mapped <1,25) {
lcd.print („žádné zařízení“);
}
jinak {
lcd.print (ma_mapped);
}
lcd.print ("mA");
lcd.setCursor (0, 2);
lcd.print ("Generovat:");
lcd.setCursor (10, 2);
lcd.print (aktuální_mA);
lcd.print ("mA");
lcd.setCursor (0, 3);
lcd.print ("Nabídka:");
lcd.setCursor (10, 3);
lcd.print (zátěžové napětí);
lcd.print ("V");
}
Krok 5: Několik dalších fotografií
Terminál reproduktoru zesilovače. LED poháněné generátorem proudu (RTD). LED diodu nahradí kabeláž analogové karty.
Konektor zcela vlevo je pro napájecí vstup. Svorky vpravo jsou pro vstup nástroje.
Krok 6: Zapojení
Zdá se, že všechno sedí. Použil jsem silikon, abych dočasně držel nějaké věci pohromadě. Ozdobný hrnec je silikonovaný vpravo nahoře. Předvrtána byla malá díra. Mohu nastavit proud z horní části krabice.
Krok 7: Jen fotky
Krok 8: Závěrečná slova
Testoval jsem výstup tohoto zařízení s PLC Allan Bradley. Výsledky byly velmi dobré. Mám plný rozsah. Také jsem testoval toto zařízení s tlakovým senzorem 4-20mA, který má vestavěný LCD displej. Výsledky byly opět velmi dobré. Moje hodnoty byly odečteny o několik desetinných míst.
Píšu svůj arduino kód do záložek. V PLC se jim říká dílčí rutiny. Usnadňuje mi ladění.
Připojeny jsou textové soubory těchto karet.
Doporučuje:
Ovládejte domácí osvětlení pomocí Google Assistant pomocí Arduina: 7 kroků
Ovládejte světla domu pomocí Google Assistant pomocí Arduina: (Aktualizace od 22. srpna 2020: Tento návod je starý 2 roky a spoléhá na některé aplikace třetích stran. Jakákoli změna na jejich straně může způsobit, že tento projekt nebude fungovat. Může, ale také nemusí. nyní pracuje, ale můžete jej sledovat jako referenci a upravovat podle
Programování Arduina pomocí jiného Arduina pro zobrazení posouvaného textu bez knihovny: 5 kroků
Programování Arduina pomocí jiného Arduina pro zobrazení posouvaného textu bez knihovny: Sony Spresense nebo Arduino Uno nejsou tak drahé a nevyžadují mnoho energie. Pokud má však váš projekt omezení výkonu, prostoru nebo dokonce rozpočtu, můžete zvážit použití Arduino Pro Mini. Na rozdíl od Arduino Pro Micro, Arduino Pro Mi
Pomocí gest můžete ovládat přehrávání na YouTube pomocí Arduina: 5 kroků
Ovládejte přehrávání na YouTube pomocí gest pomocí Arduina: StoryYouTube vám umožní přetočit vpřed pouze o 5 sekund pokaždé, když kliknete na pravé tlačítko. Rozhodl jsem se tedy použít Arduino a python k vytvoření ovladače, který mi pomůže rychle posunout vpřed o 20 sekund pokaždé, když mávnu rukou
Mluvící Arduino - Přehrávání MP3 pomocí Arduina bez jakéhokoli modulu - Přehrávání souborů MP3 z Arduina pomocí PCM: 6 kroků
Mluvící Arduino | Přehrávání MP3 pomocí Arduina bez jakéhokoli modulu | Přehrávání souboru MP3 z Arduina pomocí PCM: V tomto návodu se naučíme, jak přehrávat soubor mp3 s arduino bez použití jakéhokoli zvukového modulu, zde použijeme knihovnu PCM pro Arduino, která přehrává 16 bitů PCM s frekvencí 8 kHZ, takže to zvládneme
Přehrávejte skladby (MP3) pomocí Arduina pomocí PWM na reproduktoru nebo Flyback transformátoru: 6 kroků (s obrázky)
Přehrávejte skladby (MP3) pomocí Arduina pomocí PWM na reproduktoru nebo Flyback Transformer: Dobrý den, toto je můj první návod, doufám, že se vám bude líbit !! V zásadě jsem v tomto projektu použil sériovou komunikaci mezi mým Arduinem a notebookem, k přenosu hudebních dat z mého notebooku do Arduina. A pomocí Arduino TIMERS t