2004/12/11
5 Comments
Reading time: 5 – 8 minutes
Doncs avui m’he passat un munt d’hores fent electrònica, si nois si. Aquella assignatura que vaig repetir tants cops a la universitat. Resulta que havia de fer-li un feineta per un amic meu. Té una fàbrica de cartró i diverses màquines controlades per PCs amb Win9X, la qüestió és que a la feina li hem fet un aplicatiu de gestió per l’empresa i aquest aplicatiu és capaç de saber quins són els estats d’aquestes màquines. Així doncs aprofitant tot això el que es volia era encentre unes ‘balizas’ (llums de colors) sobre l’armari de controls de la màquina perquè a distància es pugui saber en quin estat es troba aquesta màquina.
Això que sembla tan complicat en realitat no ho és gens ni mica, simplement com dic jo té un problema: conflictes entre branques de coneixement. O sigui, electrònica, programació en Win9X, creació de .DLL i control de ports. En casos com aquests és quan entens perquè serveix la Telemàtica, ja que els informàtics em deien que ni idea de com fer el circuit, que com a molt controlar ports a alt nivell, res d’enviar bits a certs pins del port paral·lel i els electrònics em deien que de ports paral·lels ni idea que encendre i apagar ‘balizas’ tot el que vulgui: interruptors, temporitzadors, etc. però res de .dll’s i coses rares.
Així doncs, jo vaig pensar és impossible que a internet no ho trobi fet això. Només cal que recordi una mica el que sé d’electrònica, m’instal·li el Visual Studio i que compili 4 ratlles de codi que segur que trobo mig fetes i llestos. Aquí en teniu el resultat:
L’esquema del circuit i els detalls de montatge els he tret d’aquesta web (local). Pel que fa al codi per construir la DLL que controla el port paral·lel l’he tret del mateix site, però una altre pàgina (local).
[ Descarrega la DLL i el Programa en VB6 ] Encara que al entrar a la pàgina us doni la sensació que és una pàgina que parla només de VB6 no es cert. Llegiu-ho bé i veureu que la DLL la programa en C++ de fet és molt bàsica, només és una mini-interficie que llegeix i escriu un byte a la direcció del port paral·lel que indiquem. Després el programa que hi ha en VB6 és només una GUI que ens permet control·lar de forma comode el nostre circuit quan fem proves. L’interessant d’això és que després puc entregar la DLL al equip de programadors de l’empresa i aquests només s’han de preocupar de saber quin digit han de passar segons les ‘balizas’ que volen activar.
Per exemple, si volen encendre la ‘baliza’ número 1 només han de passar el codi ASCII 128, en binari: 10000000. O sigui, encen la ‘baliza’ 1 i apaga la resta.
Pel que fa als electricistes de la fàbrica aquests només han de treure la resistència i el LED si volen una caiguda de 4-5V o agafar la senyal després del LED si volen una sortida de 2-3V. Llavors ells amb un transistor en cada sortida poden amplificar la caiguda de potència fins a 24V que és el que necessiten les ‘balizas’ que s’usen en aquests armaris de control per funcionar.
A continuació us comento algunes fotos que he fet durant el montatge per si us poden ajudar, de totes formes teniu totes les fotos que he fet al album de fotos.
Com que no tenia una font d’alimentació de 5V per alimentar el circuit he usat un pack de bateries que tinc d’un walkie talkie:
He estanyat les puntes del cable paral·lel per poder-les posar a la protoboard com a part del circuit:
Connector DB25 que va directament al port paral·lel del PC, SOBRE TOT PAREU EL PC ABANS D’ENXUFAR-LO SI MAI PROVEU EL CIRCUIT!!!:
Foto general de tot el ‘tinglado’ connectat al PC:
El meu primer portatil (necessitava un port paral·lel i no tenia res més), un Pentium a 133 amb el W98 instal·lat expressament per l’experiment controlant tot el tema amb l’aplicatiu de VB6 i la DLL corresponent:
Captura de pantalla de l’aplicatiu fet en VB6 per controlar els LEDs:
L’esquema del circuit: