Skicka information mellan två st ATmega16
Skicka information mellan två st ATmega16
Hej.
Håller på med ett litet projekt som jag sitter och planerar. Mitt problem är följande.
jag kommer att ha en central med några knappar och en glcd skärm.
ca 40 meter bort ska jag ha en till liten central med lite olika typer av sensorer. Jag behöver skicka sensor datan ifrån Atmega16 central 2 ( där sensorerna sitter ) till Atmega16 central 1.
hur gör man för att koppla ihop två atmega16 så att jag kan skicka information mellan dem.
Hur många portar behöver jag använda på varje atmega16..
hur lång kan anståndet vara mellan dessa två atmega16.
informationen som kommer skickas där i mellan kommer typ att vara..
sensor 1 = 25
sensor 2 = 22
osv.. och så kommer den informationen skickas om en gång i minuter .
Något speciellt man ska tänka på när man använder flera avr i samma projekt?
Är som sagt ny på detta .
Håller på med ett litet projekt som jag sitter och planerar. Mitt problem är följande.
jag kommer att ha en central med några knappar och en glcd skärm.
ca 40 meter bort ska jag ha en till liten central med lite olika typer av sensorer. Jag behöver skicka sensor datan ifrån Atmega16 central 2 ( där sensorerna sitter ) till Atmega16 central 1.
hur gör man för att koppla ihop två atmega16 så att jag kan skicka information mellan dem.
Hur många portar behöver jag använda på varje atmega16..
hur lång kan anståndet vara mellan dessa två atmega16.
informationen som kommer skickas där i mellan kommer typ att vara..
sensor 1 = 25
sensor 2 = 22
osv.. och så kommer den informationen skickas om en gång i minuter .
Något speciellt man ska tänka på när man använder flera avr i samma projekt?
Är som sagt ny på detta .
LPRS har välfungerande radiomoduler, jag använder deras "Easy radio" och det är enkelt men kabel duger bra det med.
Enklast är att koppla serieportarna ihop, antingen via radiomoduler eller via kabel med var sin MAX232 (eller liknande) vid processorerna då 40 meter kabel kan samla upp mycket "smuts". Bäst vore att ha en optokopplare vid ingången av varje µC samt ett drivsteg på utgången, detta kan skydda skapligt mot de pulser som faktisk förekommer vid åska, det är ju sådär lagom kul att allt fungerar bra fram till en blixt slår ner i grannlaget varpå båda µC släpper ut den magiska röken.
Om data bara ska skickas ena hållet kan du även köra RS485, detta betyder att du tar 2 st MAX485 (eller liknande) istället för MAX232. Med RS485 och tvinnad kabel kan du kommunicera en del snabbare samt hålla en lägre störningsgrad.
Enklast är att koppla serieportarna ihop, antingen via radiomoduler eller via kabel med var sin MAX232 (eller liknande) vid processorerna då 40 meter kabel kan samla upp mycket "smuts". Bäst vore att ha en optokopplare vid ingången av varje µC samt ett drivsteg på utgången, detta kan skydda skapligt mot de pulser som faktisk förekommer vid åska, det är ju sådär lagom kul att allt fungerar bra fram till en blixt slår ner i grannlaget varpå båda µC släpper ut den magiska röken.
Om data bara ska skickas ena hållet kan du även köra RS485, detta betyder att du tar 2 st MAX485 (eller liknande) istället för MAX232. Med RS485 och tvinnad kabel kan du kommunicera en del snabbare samt hålla en lägre störningsgrad.
För 19$ får du t.ex. http://www.sparkfun.com/commerce/produc ... cts_id=705#
nRF24L01 och reverse-SMA antenn(wlan antenn).
nRF24L01 och reverse-SMA antenn(wlan antenn).
Jag tror icecaps förslag med RS485 är bra. Brukar köra det när avståndet är över 10 meter på uart, säkrast så. MAX487 har jag använt en del med och är nöjd över hur de presterar.
http://www.maxim-ic.com/appnotes.cfm/appnote_number/723
Edit: sedan tar du Transientskyddsdioder mot jord på datalinorna så lär inte åskan kunna ställa till med något, förutom när(inte om) du får en direktträff.
http://www.maxim-ic.com/appnotes.cfm/appnote_number/723
Edit: sedan tar du Transientskyddsdioder mot jord på datalinorna så lär inte åskan kunna ställa till med något, förutom när(inte om) du får en direktträff.
Nu blev det jobbigt
Om man har mindre avstånd mellan ATMega16 enheterna. Finns det något lättare sätt att skicka informationen mellan dem då?
Tex. Om jag sätter dem 5 cm ifrån varandra. Och drar länge kablar ut till sensorerna, allt ifrån 20-50 meter ut till sensorerna.
Om man nu väljer att gå på Uart ( RS232) vad behöver man mer än 2 st ATmega16.
behövs någon andra komponenter som man sätter på ATmega för att använda RS232.

Om man har mindre avstånd mellan ATMega16 enheterna. Finns det något lättare sätt att skicka informationen mellan dem då?
Tex. Om jag sätter dem 5 cm ifrån varandra. Och drar länge kablar ut till sensorerna, allt ifrån 20-50 meter ut till sensorerna.
Om man nu väljer att gå på Uart ( RS232) vad behöver man mer än 2 st ATmega16.
behövs någon andra komponenter som man sätter på ATmega för att använda RS232.
> Om man nu väljer att gå på Uart ( RS232) vad behöver man mer än 2 st ATmega16.
Ingenting, om det bara är 5 cm (eller upp till någon meter kanske).
Beror på hastighet också, om du kör lite långsamt, och det inte
är allt för mycket störningar, klarar du kanske 50-100 m.
Eller häng på RS232 drivers (MAX232) så klarar du längre sträckor.
Jo, lite kabel behövs också...
> Nej om du anvender RS232 skal du bara kobla TX to RX & RX to TX mellan dom 2 avr
Då kar han **INTE** RS232 !!
Ingenting, om det bara är 5 cm (eller upp till någon meter kanske).
Beror på hastighet också, om du kör lite långsamt, och det inte
är allt för mycket störningar, klarar du kanske 50-100 m.
Eller häng på RS232 drivers (MAX232) så klarar du längre sträckor.
Jo, lite kabel behövs också...

> Nej om du anvender RS232 skal du bara kobla TX to RX & RX to TX mellan dom 2 avr
Då kar han **INTE** RS232 !!
Yep, det är frestande som nybörjare att slänga in en µC till bara för att det är slut på portar. Så gör man inte i professionella produkter eftersom det mest leder till besvär med två olika mjukvaror, kommunikationsproblem och oftast merkostnader. Ett eller flera välplacerade logikkretsar (skiftregister, muxar, avkodare) löser allt som oftast problemet bäst!
Skall du ändå ha uppemot 40m mellan sensorer och användare så skulle jag helt klart lagt det extra jobbet på en seriekommunikation mellan två mikrokontrollers. Det blir mycket bättre struktur på uppbyggnaden med det och du får fåtal trådar på den långa vägen.
För så långa avstånd så är, precis som Icecap sa, RS485 mycket lämpligt. Då kan du med tre portpinnar i vardera änden skicka data åt båda hållen över väldigt stora avstånd.
Alternativet om du ändå bestämmer dig för att bara ha sensorerna "långt bort", är att använda 1-wirebuss. Men det är lite beroende på vad för typ av sensorer du skall ha också.
För så långa avstånd så är, precis som Icecap sa, RS485 mycket lämpligt. Då kan du med tre portpinnar i vardera änden skicka data åt båda hållen över väldigt stora avstånd.
Alternativet om du ändå bestämmer dig för att bara ha sensorerna "långt bort", är att använda 1-wirebuss. Men det är lite beroende på vad för typ av sensorer du skall ha också.