Springen naar inhoud


- - - - -

Orvi'S Grote 433 Mhz Project.

433 mHz ontvangen verzenden rs232 com relais

  • Log in a.u.b. om te beantwoorden
Er zijn 3 reacties in dit onderwerp

#1 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4380 berichten
    Laatst bezocht 02 jul 2018 15:31
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 20 november 2013 - 12:57

Via Google heeft mij iemand benaderd omdat deze persoon wel goed is in printplaten maken en programmeren deels in VB6 , maar niet weg kwam in VB2005 en hoger.
Deze persoon heeft zich sinds kort aangemeld hier , op aanvraag van mij , onder de naam Orvi.
Orvi is al enige tijd bezig met een 433 mHz project en deze heb ik 2 weken geleden mogen bewonderen.
Het project werkt via de COM-Poort.

Omdat ik het zelf een heel mooi project vond, heb ik een deal met hem gesloten als ik hem zou helpen met het schrijven van de code in Visual Basic dan zou hij voor ons de prints incl. eventueel gebruikte codes uitleggen.

Momenteel kan de relais kaart alleen signalen ontvangen maar Orvi is bezig met een nieuwe print die ook signalen terug kan zenden.

Dus daarom is dit project hier nu gestart , aangezien hij mij voor enige dagen zijn prints heeft geleend om te mogen testen en ik moet echt zeggen dat ik erg ervan onder de indruk ben.
Mooi compact, en netjes gemaakt.
Het project word hier dus niet in een keer uitgelegd maar steeds bijgewerkt worden door mij want het is behoorlijk wat, maar echt de moeite waard om te volgen.
Zelf ga ik het ook proberen te maken zodat ik inzicht krijg in de exacte werking en hoe en wat.
Uiteraard zal Orvi , indien hij tijd tussen door vind ook antwoorden op vragen (deze zal ik dan weer terug verwerken in dit project).

Eerst een stukje uitleg over de RS232.
Deze interface bied een kosteneffectieve eenvoudige en betrouwbare communicatie tussen één domeincontroller naar een andere controller, of tussen een domeincontroller en PC.

RS-232 Basis.
RS-232 (aanbevolen standaard 232) is een standaard voor seriële binaire data signalen verbinding maken tussen een DTE (Data terminal equipment) en een DCE (Data Circuit-terminating Equipment).
Voltage Levels:
De RS-232-standaard definieert de spanningsniveaus die overeenkomen met een logische 1 en logische 0 niveau. Geldige signalen zijn plus of min 3 tot 25 volt. Het bereik in de buurt van nul volt is niet een geldige RS-232-niveau; logica 1 wordt gedefinieerd als een negatieve spanning, de signaal-voorwaarde wordt markering genoemd, en heeft de functionele betekenis van OFF. Logica nul is positief, de signaal-voorwaarde is afstand, en heeft de functie ON. Dus een logica nul weergegeven als + 3V aan + -25V en één logica vertegenwoordigd als - 3V aan - 25V. -
Bijlage  voltage.gif   2,45K   1 downloads

RS-232 Level Converters.
Meestal werken alle digial ICs op TTL of CMOS spanningsniveaus die niet kunnen worden gebruikt om te communiceren via RS-232-protocol. Dus een spanning of niveau converter is nodig die TTL kan converteren naar RS232 en RS232 naar TTL spanningsniveaus. De meest gebruikte RS-232 niveau converter is MAX232. Deze IC omvat een soort pomp die RS232 spanningsniveaus kan genereren (-10V en + 10V) van 5V voeding. Ook omvat deze twee ontvangers en twee zenders en is in staat full-duplex UART/USART-communicatie.
Bijlage  max232.gif   2,19K   1 downloadsBijlage  max232a.gif   3,01K   1 downloads

MAX232 Interfacing met Microcontrollers.
Als u wilt communiceren via UART of USART, hoeven we alleen maar drie fundamentele signalen te werken, namelijk RXD (ontvangen), TXD (verzenden), GND (common ground). Dus om de MAX232 interface met een microcontroller (AVR, ARM, 8051, PIC enz.) te communiceren moeten we enkel de fundamentele signalen gebruiken. Een eenvoudige schematisch diagram van verbindingen tussen een microcontroller en MAX232 wordt hieronder weergegeven.
Bijlage  max232.png   7,93K   2 downloads


Nu terug naar naar het project.
Om als eerste iets te tonen beide prints, de Relais kaart en de transmitter kaart.

De Relaiskaart op 433 mHz.
Bijlage  IMAG0252.jpg   81,87K   9 downloads

De transmitter kaart.
Bijlage  IMAG0258.jpg   100,51K   9 downloads

Om te beginnen bij de Transmitter kaart oftewel Draadloze RS232-verbinding , deze is te vinden bij elekor.nl
Alles staat netjes vermeld op deze link.:  http://www.elektor.n...ing.52309.lynkx
Voor als de link ooit niet meer zou werken hierbij alle benodigde onderdelen.:
Weerstanden:
R1...R4 = 1k8

Condensatoren:
C1,C3,C9 = 100 n
C2,C4 = 10 µ/16 V radiaal
C5...C8 = 1 µ/16 V radiaal

Halfgeleiders:
D1 = 1N4148
D2,D3,D5 = LED groen 3 mm, low current
D4 = LED rood 3 mm, low current

IC1 = 7805CP
IC2 = MAX232CP
IC3 = LPRS ER400TRS (zie tekst)

Diversen:
JP1 = 2-polige header met jumper
JP2 = 3-polige header met jumper

K1,K3 = 2-polige pen-aansluiting
K2 = 9-polige haakse sub-D-connector, female, voor printmontage
K4 = BNC-bus voor printmontage (Farnell 365-0558)

RS232-kabel (aansluitingen 1:1 doorverbonden)


De onbestukte printplaat.: Bijlage  Elektor-391c671e-60d4-4c21-a960-032ccd1ac5e4.pdf   83,5K   1 downloads
Het artikel compleet. zoals op de site.: Bijlage  Draadloze RS232-verbinding.pdf   399,58K   1 downloads
Deze software zat er ook bij , maar deze heb ik niet getest.: Bijlage  030204-11.zip   2,79MB   2 downloads

Die ER400TRS zul je moeten programmeren op de juiste frequentie en boadrate.
Je kunt het ding alleen programmeren met TTL signalen, je hebt dus een omzetter nodig van RS232 naar TTL, een max232 of dergelijk of USB naar TTL.
LET GOED OP !
standaard staat de baudrate op max, als je die met een commando veranderd ben je hem dus kwijt voor je compoort.
Dan weer baudrate opnieuw instellen van je compoort, Freq staat in dit project op CH7, alle overige zaken staan uit.
Let goed op dat je de TTL signalen naar je ER gebruikt.
Sluit je de RS232 signalen op je ER aan dan kun je voor een nieuwe gaan zoeken.

Ik ga dit doen via COM to TTL, je kunt het ook doen met USB to TTL en om die eventueel zelf te maken kun je dit schema gebruiken.:
Bijlage  USB_Serial_converter.gif   67,75K   7 downloads

Maar zoals ik al vermelde doe ik dit nu via COM to TTL.

De RS232-module kan worden gebruikt voor de interface van een microntroller op een PC via een RS232 verbinding (seriële poort).
Deze module rekent signalen tussen RS232 spanningsniveaus en TTL spanningsniveaus.
Het is de bi-directionele, waar TTL signalen worden geconverteerd naar RS232 niveaus en RS232 niveaus worden geconverteerd naar TTL niveaus.
De module kan worden gemonteerd met elke MAX232 compatibel RS-232 zender/ontvanger chip.

Hier heb ik een schema van gevonden dat gemaakt is via eagle.
Bijlage  schema rs232 to TTL.png   10,58K   6 downloads

De print komt er dan zo uit te zien voor je PCB.:
Bijlage  schema rs232 to TTL print layout.png   8,69K   1 downloads

Voor diegene die met eagle zouden werken en zowel schema als PCB willen hebben hierbij de file.: Bijlage  rs232modul-dil_v1.0.zip   43,91K   1 downloads
Je print komt er dan zo ongeveer uit te zien.:
Bijlage  rs232modul-dil.jpg   37,7K   2 downloads

Voor diegene die het programma niet hebben maar wel de pint willen maken kunnen deze print gebruiken in pdf formaat.: Bijlage  rs232modul-dil.brd.pdf   32,33K   1 downloads
De benodigde onderdelen zijn als volgt volgens schema.:
Bijlage  partlist.png   4,47K   3 downloads

De software die je ervoor nodig hebt is deze.:Bijlage  ER Companion 3_18 setup.zip   882,6K   2 downloads

Nou bij mij heb ik dus die COM to TTL print gemaakt en de ER400RS/TRS op een breadboardje gezet en met de COM to TTL gekoppeld , voorzien van een externe 5V adapter.
Hier een foto ervan.
Bijlage  ER400 programmeren.jpg   71,04K   6 downloads
Nu zijn beide TRS en RS op een baud rate van 9600 gezet en beide op kanaal 7 ook te zien in software.:
Bijlage  radio.png   51,03K   6 downloads

Je kunt bovenstaande stukje , dus i.p.v. de COM naar TTL ook doen met USB naar TTL.
Dit heb ik idem geprobeerd en werkt ook zonder problemen.
Dit heb ik kunnen testen door een sponsoring van www.sossolutions.nl die mij van deze kabel heeft voorzien, mijn dank hiervoor.

De transmitter die dus gebruikt word om alle signalen te versturen vanaf de COM-Poort heb ik ook nagemaakt en mijn vers ingestelde ER400TRS erin gezet en getest.
Eerste instantie werkte hij niet tot dat ik zag dat ik 1 ledje verkeerd om had staan, na correctie werkte hij wel, dit getest op de relais kaart van Orvi.
Hier te zien zonder de behuizing.
Bijlage  eigen transmitter.png   948,77K   6 downloads

De relais kaart 8 kanaals vanOrvi in Designspark (hier heeft hij deze in gemaakt) ziet er zo uit.
Bijlage  3dview 8relais kaart.png   49,58K   8 downloads

Het schema van deze relaiskaart heb ik nu klaar en is hier in pdf te vinden.:
Bijlage  testorvi8relaykaart - Schematic.pdf   129,16K   1 downloads
Hij is niet geheel volgens de regeltjes , maar het spreekt wel voor zich zelf neem ik aan.

In mijn nagemaakte versie zit ergens een fout, welke weet ik niet, maar ben hier volop mee bezig, op een of andere manier reageert hij niet.
De ER400RE is het probleem niet , deze staat goed ingesteld 4 maal gecontroleerd.
Ondertussen heb ik het probleem/problemen gevonden.
Het bleek dus dat de geleverde IC (MCP23008 E/P) defect was, hierdoor gingen mijn relais een eigen leven leiden, hierop volgende dat deze ook verkeerde spanning doorstuurde op de print en dus ook mijn ER400RS heeft vernield, 41 euro naar de maan.
Maar goed, nieuw is besteld en hopelijk morgen/overmorgen binnen om verder te kunnen.

Alle onderdelen vandaag nieuw binnen gekregen via mijn goede vriend Dick best, kan ik heugelijk mededelen dat mijn relaiskaart nu ook werkt :)
En zo ziet dus mijn kaart eruit, niet op een proffesionele kaart zoals Orvi, maar het gaat om de werking ;)
Bijlage  mijn kaart.jpg   66,44K   7 downloads

Eerst zal ik een kleine uitleg geven over de onderdelen die gebruikt zijn geworden op de relais kaart.

Waar dient de UTP connectie en IC op de print, die op onderstaande foto zijn omcirkeld?
Bijlage  UTPafstand.gif   388,98K   6 downloads
De UTP aansluiting kan gebruikt worden om tussen 2 prints een connectie te maken op een bepaalde afstand.
Deze afstand word bepaald door de IC die niet ingezet is geworden maar wel op de foto omcirkeld is geworden.
Hier zou een P82B715 ingezet moeten worden, dit is een I2C-bus extender.
Bijlage  p82b715.jpg   2,85K   3 downloads
Deze kan een afstand van maximaal 30 meter overbruggen.

De relais kaart werkt grotendeels op 5V.
De onderdelen die op 5V werken zijn hier omcirkeld.
Bijlage  5v.gif   421,76K   1 downloads
Helemaal links op de foto zit een spanningsregelaar, deze zorgt ervoor dat de ingaande voeding om word gezet naar 5V.
Omdat de ingaande voeding 12V is maken we netjes gebruik van beide voltages.
Net naast de voltage regulator zit een MCP23008 E/P, dit is een 8-bit port expander met interrupt output die

De onderdelen die op 12V werken zijn op onderstaande foto omcirkeld.
De IC die links is omcirkeld is een ULN2803A, dit is een High Current Darlington Transistor Array, die de commando's van de MCP23008 omzet en hiermee de ralais aanstuurd.
Bijlage  12v.gif   405,38K   1 downloads

De relaiskaart word aangestuurd door een PIC 16F648, die de signalen van de ER400RS omzet en uitvoert.
Deze is omcirkeld op de foto.
Bijlage  16f648.gif   422,22K   1 downloads

De code die in deze IC zit is in JAL geschreven maar ik zal deze ook proberen om te zetten naar Picbasic.
De code ziet er zo uit in JAL.:
Code:
-- JAL 2.0.4
include 16f648a_bert
include i2c
include mcp23008

var byte data = 0
var byte groep = 0



var volatile bit Ch1 at groep : 0
var volatile bit Ch2 at groep : 1
var volatile bit Ch3 at groep : 2
var volatile bit Ch4 at groep : 3
var volatile bit Ch5 at groep : 4
var volatile bit Ch6 at groep : 5
var volatile bit Ch7 at groep : 6
var volatile bit Ch8 at groep : 7


mcp23008_write(0b_0100_001,5, 0b_0001_0010)
mcp23008_write(0b_0100_001,0, 0b_0000_0000)

forever loop


			 while ! serial_hw_read(data)loop
			 end loop
							 if data == 11 then
							 ch1 = 1
							 mcp23008_write(0b_0100_001,9,groep)
							 end if

							 if data == 10 then
							 ch1 = 0
							 mcp23008_write(0b_0100_001,9,groep)
							 end if

								 if data == 21 then
								 ch2 = 1
								 mcp23008_write(0b_0100_001,9,groep)
								 end if

								 if data == 20 then
								 ch2 = 0
								 mcp23008_write(0b_0100_001,9,groep)
								 end if

							 if data == 31 then
							 ch3 = 1
							 mcp23008_write(0b_0100_001,9,groep)
							 end if

							 if data == 30 then
							 ch3 = 0
							 mcp23008_write(0b_0100_001,9,groep)
							 end if

								 if data == 41 then
								 ch4 = 1
								 mcp23008_write(0b_0100_001,9,groep)
								 end if

								 if data == 40 then
								 ch4 = 0
								 mcp23008_write(0b_0100_001,9,groep)
								 end if
							
							
							 if data == 51 then
							 ch5 = 1
							 mcp23008_write(0b_0100_001,9,groep)
							 end if

							 if data == 50 then
							 ch5 = 0
							 mcp23008_write(0b_0100_001,9,groep)
							 end if

								 if data == 61 then
								 ch6 = 1
								 mcp23008_write(0b_0100_001,9,groep)
								 end if

								 if data == 60 then
								 ch6 = 0
								 mcp23008_write(0b_0100_001,9,groep)
								 end if

							 if data == 71 then
							 ch7 = 1
							 mcp23008_write(0b_0100_001,9,groep)
							 end if

							 if data == 70 then
							 ch7 = 0
							 mcp23008_write(0b_0100_001,9,groep)
							 end if

								 if data == 81 then
								 ch8 = 1
								 mcp23008_write(0b_0100_001,9,groep)
								 end if

								 if data == 80 then
								 ch8 = 0
								 mcp23008_write(0b_0100_001,9,groep)
								 end if

							
end loop

Ondertussen heb ik mijn print weer opnieuw gemaakt omdat ik had gezien dat 7 poorten niet werden gebruikt 3 A-poorten en 4 B poorten.
Aan de hand hiervan heb ik de banen iets verschoven waardoor ik 7 headerpinnen erbij heb kunnen plaatsen om een extra print boven op erbij te plaatsen.
Tevens heb ik een de poorten , die nodig zijn om de IC te programmeren, ook op de print aangemaakt zodat ik de IC niet steeds eruit hoef te halen.

27-12 ga ik weer bij Orvi langs om nog nieuwe info op te doen en zijn prints retour te geven , dit aangezien mijn prints nu ook werken is het niet meer nodig die van hem thuis te bewaren.

Ik ben dus 27-12 weer bij hem geweest en heb hem mijn copie van zijn kaart laten zien en verteld wat dus mijn verdere plannen was met die relai kaart.

1 van de grote veranderingen die ook het meeste tot op heden heeft gekost was om zijn JAL-code om te zetten naar Picbasic (Proton Ide) code.
Dit heeft mij toch bijna 3 weken gekost om dit te doen.
Het mooie was dat bij Orvi zijn 16F648A vol was, terwijl na omzetting van Jal naar Picbasic mijn 16F648A maar voor 40% vol was.

Van deze mogelijkheid en de poorten die hij vrij had gelaten gaf mij de mogelijkheid verder te kijken wat de optie's waren.
Na lang wikken en wegen heb ik gekozen om een 16*2 Lcd erop te zetten die van zichzelf al 4 bedieningsknoppen aan board had.
Bijlage  lcd.jpg   17,01K   1 downloadsBijlage  lcd2.jpg   39,97K   1 downloads

Omdat na het aansluiten van de lcd pinnen er 6 bezet bleven was nog maar 1 poort vrij.
Maar omdat ik die knoppen ook wilde gebruiken heb ik gebruik gemaakt van een pulsschakelaars-methode, die ik gevonden had op picbasic.nl van Fritz.
Bijlage  schema_cursus5f.gif   20,27K   1 downloads

Uiteraard heb ik dus nu alle pinnen in gebruik met het resultaat dat de relai kaart nu ook manueel bediend kan worden.
Dit hield wel in dat ik weer 1 week bezig was om de code werkend te krijgen.
Maar omdat een menu vrij veel geheugen vergt van een ic en ik halverwege mijn menu's al op 98% zat van het geheugen, moest ik een nieuwe oplossing zoeken om een andere ic te gebruiken.
Het probleem was alleen dat ik dus die relai kaart niet nog eens opnieuw wilde gaan maken, maar door een tip van Stynus (schematheek) die mij verwezen had naar een 16F1847.
Deze heeft het dubbele geheugen van een 16F648A.
Nu is de code bijna klaar, moet nog alleen de RC5/RC6 protocol van Philips erin zetten om de IR aan te spreken die op de relaikaart zit van hem.
In ieder geval het werkt nu allemaal bijna vlekkeloos en zit op die 16F1847 nu 48.25%.

Nu in het weekend ga ik het verloop printje maken, waarmee ik die lcd op de relaikaart kan koppelen zodat mijn breadboard weer leeg gemaakt kan worden want het overzicht is bijna weg ervan ;)

Bijlage  breadboard.jpg   104,35K   1 downloads

(word vervolgt)

Veranderd door pascalbianca, 17 januari 2014 - 21:42.


#2 Yannou

Yannou

    VBIB Godfather

  • Leden
  • PipPipPipPipPipPipPipPip
  • 2465 berichten
    Laatst bezocht 07 mei 2017 13:46
  • Locatiehttp://www.fablab-brussels.be

Geplaatst op 27 november 2013 - 09:48

Knap werk, maar foto's zeggen helaas niet veel als het op elektronica aan komt. Graag ook de bijhorende schema's posten!

#3 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4380 berichten
    Laatst bezocht 02 jul 2018 15:31
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 27 november 2013 - 11:45

Ja komt allemaal, maar moet eerst allemaal info bijeen verzamelen van hem en kijken of ik die schema's zelf even maak want hij werkt vanuit een breadboard en dan maakt hij gelijk de printlayout , dus hij slaat de schema's over.
Het is een vrij groot project daarom heb ik ook eronder (word vervolgt) gezet ;)

Hij is nu weer bezig met een nieuwe print die ook gegevens terug kan zenden, maar hier zal even wat tijd in gaan zitten.

#4 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4380 berichten
    Laatst bezocht 02 jul 2018 15:31
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 17 januari 2014 - 21:42

Updated!





Ook met taq 433 mHz, ontvangen, verzenden, rs232, com, relais voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)