Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino - tutorijali, pitanja, primjeri i projekti
Ako je neophodno 8 analognih od preostalih 12 digitalnih odvoji jedan seriski port za taj LCD koji ce ici preko I2C, to su dve nozice manje i ostaje ti 10 digitalnih pinova, 6 neka budu OUT i 4 neka budi IN (za pocetak da ne komplikujemo).

Specifikacija 1:
- 8 Analog IN
- 6 Digital OUT
- 4 Digital IN
- I2C PORT

Razmisli da li ti to pije vodu, posebno oko onih 8 analognih IN, i to je I/O specifikacija, nema vise nozica Smile
Reply
Malkice bolji predlog bi bio samo da izlaze povecas na 8 zbog efektnijeg iskoriscenja materijala (koristis jedan isti 4xOpto za sve) i dolazi se do ove specifikacije:

Specifikacija 2:
- 6 Analog IN
- 8 Digital OUT
- 4 Digital IN
- I2C PORT

Ukoliko ostavis samo 2 analogna ulaza sto bi mozda bilo najzgodnije (ako ti zatreba jos analognih moze preko I2C), dolazi se do jedne univerzalne postavke:

Specifikacija 3:
- 2 Analog IN
- 8 Digital OUT
- 8 Digital IN
- I2C PORT

Analogni ulazi traze drugu elektroniku na svojim pinovima i nije zgodno da se "prepakuje" posle da rade nesto drugo kao sto mogu digitalni pinovi sa pomeranjem optocouplera.
Reply
---

Jos malo zanimljive price i jedno konkretno pitanje, sto dan danas prave ECC memorije??

Za informaciju to su memorije sa kontrolom greske, imaju posebne dodatne memoriske lokacije pored onih koje korisnih vidi i koristi i koje sluze samo da drze "parity" informaciju i koje imaju mehanizam za povratak nekog dela informacije ukoliko se iz bilo kog razloga zagubi negde neki bit u memoriji, bez obzira koliko je ona moderna, brza ili tehnologija izrade, jednostavno ukazao se zahtev da i ta stvar mora da se provera i to tokom rada i da dodatno ako je moguce sama sebe koriguje i usput da javlja da se to desilo.

Vrlo ozbiljni sistemi upravljanja gde se barata velikom energijom, razne mlazne turbine, ubrzivaci cestica, nuklearni reaktori i sta ja znam sta sve, takvi sistemi kada se startuju oni su negde "krenuli" i takav sistem ako mu se bilo sta desi sa upravljackim procesorom, gubi se kontrola nas sistemom i taj sistem "ide" negde sam bez mogucnosti da ga ikako zaustavis (u slucaju da otkazu i ostali sigurnosni mehanizmi) i najcesce dolazi do katrastofalnih posledica.

Spomenuti Space Shutle sto je pao (video ga, ne taj sto pao, ceo jedan : ), nije pao zato sto se "zaglavio" procesor/i (ko zna koliko ih ima redudatnih - radili su svi do zadnje sekunde garantujem), nego je pao zato sto taj isti procesor nije imao informaciju o spornom dogodjaju u tom trenutku, nisu predvideli da je to moglo da se desi jer da su predvideli morali su da imaju i "escape plan" tj celu proceduru sta je trebalo da se uradi u slucaju takvog kvara makar ljude da spasu. Grantujem da su posle tog incedenta stavljali senzore na O-ring "dihtung gume" sa sve mikrokontrolerima koji direktno mere te neke pritiske i prave momentalni interapt sistemu iiiii ...

Isti slucaj i sa incidentom u Fukushimi sa nuklearnim reaktorom, njima nije otkazao ni jedan HW ili SW sistem, napravili su to najbolje sto znaju i ti sistemi su radili do zadnje sekunde, jednostavno nisu predvideli da moze da ih strefi cunami i sve to potopi, da su to predvideli mozda nebi ni gradili elektranu na tom mestu ili bi pravili neke visoke betoske brane ili sta vec ...

Suprotan primer je incident u Chernobilu, tamo je zakazao sistem, po prici zaglavila im se kazaljka na nekom instrumentu pa su operateri posledicno davali pogresne komande sistemu i na kraju je bilo sto je bilo ...
Garantujem vam da su posle toga poceli da uvode za takve banalne stvari na tako kriticnim mestima kao sto je kazaljka na instrumentu, fead-back kolo da vrati sistemu jel stavarno taj mrtvi kazaljkas pokazao to sto je trebalo, ta inzinjerska skola je placena ogromnim ljudskim zrtvama, nema opravdanja da se takve stvari vise ponavljaju! Svi mi smo platili tu skolu i sto je najgore jos uvek osecamo posledice, mnogo je to opak incident bio za neku "tehniku", sta treba jos da se desi da ukapiramo da MORAMO da razmisljamo drugacije?

Primer "ozbiljnih" kontolera je Texas Instruments Hercules, posebna serija ARM Cortex-R mikrokontolera predvidjena za najzahtevnije aplikacije:

Quote:On-chip diagnostics

Hercules MCUs provide a high level of diagnostic coverage in hardware so that customers can optimize performance and code size by reducing complex safety software.

LockStep CPUs -- 1oo1D safety concept
CPU Built-In Self-Test (BIST) controller
ECC on FLASH and RAM
ECC calculation in CPU checks the interconnect
Memory BIST on CPU and peripheral RAMs
Clock and voltage monitoring
Error signaling module with error pin

http://www.ti.com/lsds/ti/microcontrolle...rview.page#

Ovo vam pricam da bi imali sliku koliko neke stvari moraju malo ozbiljnije da se sagledaju i da je na nama autorima nekakvih HW SW resenja vrlo bitno prvo da prepoznamo potencialne probloeme a onda da tekve probleme ako je moguce predupredimo i to izborom najboje dostupne tehnike u tom trenutku, posebno ako se radi o cenovnim rangovima "ovo kosta 3E a ovo 10E", to je zaaaadnji faktor koji treba da odlucuje neko resenje, pre toga mora da se ispostuju neke druge stvari o kojima nismo do skora uopste i razmisljali i to samo zato sto smo imali stavove "ma ne treba to meni, dobar meni 8 bita MCU" a za ove probleme nismo ni znali da ih imamo a kamoli kako da ih resimo.
Reply
Makso,

batali broj nozica na arduino-u. Kazi koliko tebi treba. Lepo te Zelja pita za tvoje zahteve za PLC.
Inace industrijsko napajanje nije do 24V, vec do 32V.
Reply
2 analog IN
8 digital IN
8 digital OUT
I2C port.

Ja sam se susretao sa mašinama koje rade do 46-48V napajanja, neke limarske mašine.
Reply
(07-23-2017, 07:21 AM)Makso Wrote: 2 analog IN
8 digital IN
8 digital OUT
I2C port.

A da koristiš Arduino Mega ?
Sa stanovišta pisanja softvera ti je potpuno isto, a imaš više I/O na raspolaganju.

Nema potrebe za port ekspanderima i ostalim "žongliranjem" da bi dobio to što tebi treba
a i više od toga.
Reply
Makso,
Razmotri pre svega da li ti je taj 16x2 LCD neophodan. Ti kažeš da nemaš tastaturu/tastere što znači da ne unosiš nikakve parametre već na LCD-u samo ispisuješ poruke. Za tu svrhu ti je možda bolje da koristiš LED ili neku drugu svetlosnu indikaciju. Digitalni ulazi/izlazi mogu da imaju sopstvenu LED koja će ti služiti za indikaciju šta je uključeno/isključeno. To je i uočljivije sa par metara razdaljine a ne da nišaniš po tom LCD-u. Da bi vozio koliko-toliko uspešno taj 16x2 treba ti najmanje 7 linija sa MCU. Obično se ona R/W vezuje na GND (dakle vezan je preko 6 linija sa MCU) što znači da se po displeju samo piše ali nije to baš najsrećnije rešenje. Tvoj problem sa LCD to i pokazuje.
Ako ti je displej baš neophodan, već sam ti spomenuo, da možeš koristiti neki grafički SPI/I2C. Za njega ti treba manje linija sa MCU a prikaz je jasniji i lepši Shy .
Reply
@Želja
Razmišljao sam i o tome, ali to bih iskoristio za narednu verziju a sad hoću sa Nano.

@gorankg
Sad ostaje LCD 16x2 preko I2C porta. A i puno mi je lakše postaviti ovaj LCD, što nije isključeno za naredni period da neću koristiti neki grafički.
Reply
Onda prihvati Mikijev predlog br.3 kao koncept i to je TO.

Analogne ulaze možeš iskoristiti za čitanje stanja više tastera (dodatnih SPORIH dig.ulaza) povezanih na njih preko različitih vrednosti otpornika
Ovako : http://www.canton-electronics.com/arduin...p-813.html

Crtaj šemu pre projektovanja PCB !

Pozz
Reply
(07-23-2017, 07:54 AM)gorankg Wrote: Makso,
Razmotri pre svega da li ti je taj 16x2 LCD neophodan. Ti kažeš da nemaš tastaturu/tastere što znači da ne unosiš nikakve parametre već na LCD-u samo ispisuješ poruke.

He,He ...

Ako nema LCD, već samo LED za indikaciju što i jeste dovoljno za tako nešto
onda nema mogućnost pri uključenju da napiše "Made in Makso i broj.mobilnog"

Šalim se malo - naravno Smile
LCD je svakako zgodan za prikaz poruka i to lepo na Srpskom jeziku napisano u različitim fazama rada PLC-a.

Ili recimo ako ne plate odmah, što je danas opštenarodna praksa - posle odredjenog broja sati PLC prestane sa radom
i veoma kulturno saopšti razlog za to na displeju Big Grin
- Kada plate, Makso im lepo poštom samo pošalje otpornik odredjene vrednosti koji samo
prikače na klemu od jednog analognog porta sa oznakom "UNLOCK" - i gle ... PLC otključan !
Reply
@Želja
To nisam nikad pokušavao, imaš li nekakav primjer da se to softverski odradi za te neplatiše, za određeni broj sati morao bi koristiti eprom memoriju?

LCD ne koristim uvijek ali da imam mogućnost povezivanja kad god hoću.
Reply
EEh, ko me vukao za jezik Smile

Vidi, - Arduino odnosno Atmel ne poznajem, jer radim samo sa PIC-om.
U principu je potpuno ista stvar u pitanju.

EEProm moraš imati ( bilo u samom MCU , bilo eksterni )
ATmega328 ima interni EEprom.

Program izgleda ovako:

Pre main loop proverava se broj upisanih u EEpromu (koliko je radio PLC) i poredi sa nekom zadatom vrednosti.
Ako je manji od toga ide se main loop.

A ako nije onda, prvo na test za UNLOCK pa onda na poruku upozorenja na LCD i tu u neku bezkonačnu petlju.
Kada prvi put udješ u UNLOCK (ubacivanjem tog otpornika) tada trajno onemogući dalju proveru broja radnih sati !

Ako je sve OK, kroz main loop periodično (recimo na svakih 60 sekundi) prozivaš potprogram za broj radnih sati
i uvećavaš jednu varijablu "minuti" sve do 59 a zatim dobijaš stanje varijable "sati" koju odmah upisuješ u EEprom.

Na ovaj način ako je PLC radio recimo 50 min pa je ugašen, broj radnih sati neće biti promenjen u EEpromu
već samo broj "isteklih radnih sati".

Ili radi upis posle svakog "radnog minuta" sa 16 bitnom varijablom to dodje na max. 1092 radna sata što je i više nego dovoljno
Ako ideš na upis radnih sati onda možeš koristiti i 8 bitnu varijablu jer je 255 radnih sati sasvim korektan period za čekanje naplate Smile

I to je TO

Pozz
Reply
To sa otpornikom ti je slaba zastita. I dalje su ti razlozi za taj lcd tanki.
Reply
(07-23-2017, 09:19 AM)gorankg Wrote: To sa otpornikom ti je slaba zastita. I dalje su ti razlozi za taj lcd tanki.

Ako tako gledamo Gorane, sve i da napravimo sklop za samouništenje PLC-a u slučaju neplaćanja,
ili NEOBORIV algoritam za zaključavanje - uvek će biti onih kojima je dovoljno da samo pogledaju gde je to ugradjeno i naprave potpuno novu elektroniku.

Za 99% kupaca odredjeni naponski nivo na AN inputu je sasvim korektna zaštita.
Eto može se ubaciti i potprogram koji bi u slučaju pogrešnog nivoa na ADC
(eto za "pametnije" gazde koji bi se eventulano dosetili da probaju otključati PLC sa potenciometrom)
onemogućio "dalje skeniranje " ...

i recimo omogućiti UNLOCK samo u nekom kratkom i strogo odredjenom vremenskom intervalu posle POWER ON.
Kombinacija može biti više ...
Reply
(07-23-2017, 07:55 AM)Makso Wrote: @gorankg
Sad ostaje LCD 16x2 preko I2C porta. A i puno mi je lakše postaviti ovaj LCD, što nije isključeno za naredni period da neću koristiti neki grafički.

Moram da vas upozorim da je za GLCD potrebno malo više FLASH-a i dovoljno RAM-a da bi se uradio korektan GUI. Tako da u malim Arduino i sličnim platformama isključivo HD44780 LCD.
Reply
Makso,

nacrtacu ti veceras semu tvog plc-a prema tvojim instrukcijama i jos ponesto. Necu da crtam oprokaplere. Stavicu samo napomenu da mogu tu da se koriste.
Reply
Karakteristike plc ce biti sledece:
- 16 diskretnih ulaza 24v
- 16 diskretnih izlaza 24v
- 2 analogna ulaza galvanski izolovana 0 - 10v ili 4-20mA
- I2C za prosirenje na daljinu za displej i tastaturu
- izolovani RS485
- sta ostane brzih ulaza i izlaza
- RTC

Nadam se da ti je ovo OK. Napanje si rekao da ce biti Macolino. Njega cu da crtam kao blok, samo cu dodati zastite. Ne znam kakva je sema. Verujem da ima prenaponsku ili prekostrujnu zastitu, ali cu ipak da nacrtam. Svaki deo ce imati svoje zastite.
Reply
Čemu će mi služiti RS485, jer neće mi trebati nikakva proširenja?
A i za RTC nisam imao potrebe, pa ne bih ovu verziju ni opterećivao sa time, neko moje mišljenje?

Ima na napajanju dioda na samom izlazu u slučaju porasta napona, a strujno je ograničeno odabirom feritnog jezgra.
Reply
RS485 je za potencijalnu komunikaciju sa drugim uredjajima. To ce ti uvek zatrebati. RTC ne moras da lemis. Bolje je predvideti, pa lemiti po potrebi. Dioda ne ogranicava nista. Ogranicava samo zener ili transil. Ferit ne ogranicava struju, vec je filtrira. Ogranicava je osigurac. To moras da imas. I danasnje vreme se koriste elektronski osiguraci. Inace plc mora da bude zasticen od spoljasnjih uticaja.
Koliko ja vidim ti nemas nikakvu predstavu gde koristiti plc takav. I nikako ne smes da se oslanjas na biblioteke, nego sam da pises svoj sistemski program. Ako to ne zelis, kazi odmah da ne crtam nista. Ako se oslanjas na biblioteke, uzmi arduino koji ima veliki broj u/i i postavi sta zelis. Masis uporno poentu projektovanja plc-a.
Najbolje je da kazes sta tacno zelis i gde zelis to da upotrebis. Sve tvoje specifikacije su izuzetno sirove i niko ne moze da ti cita misli sta zelis sa ovim poduhvatom da postignes. Bez uvrede, ali tako sam razumeo
Reply
Ima na mom napajanju obavezna BZW04-5V8 TVS dioda, na 5V liniji.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)