Go Down

Topic: Anslutning av diverse komponenter (Read 19552 times) previous topic - next topic

Aug 25, 2012, 07:56 pm Last Edit: Aug 25, 2012, 08:02 pm by freddehboy Reason: 1
Hej

Jag har nu kommit så pass långt i bygget att jag kan fundera på anslutnings förfarandet!

I mitt projekt ingår dessa komponer och frågor till var och en kan ses efter "G":

A.)
29 st On/off switchar;
(http://www.kjell.com/sortiment/el/elektronik/elektromekanik/strombrytare/vippomkopplare/vippstrombrytare-1-pol-on-off-p36121)
&
(http://www.kjell.com/sortiment/el/elektronik/elektromekanik/strombrytare/vippomkopplare/vippstrombrytare-1-pol-on-off-p36123)

A1.)
8 st on/off switchar av typen, se bild!

Totalt är det 37 st sådana switchar!

B.)
6 st On/off/on switchar av;
(http://www.kjell.com/sortiment/el/elektronik/elektromekanik/strombrytare/vippomkopplare/vippstrombr-1-pol-on-off-on-p36124)

C.)
3 st on/off/on;
Se bild (De riktiga motsvarar de på bilden med antalet ben!

D.)
6 st mom/off/mom;
Se bild (De riktiga motsvarar de på bilden med antalet ben!

E.)
1 st on/off/mom;
Se bild (De riktiga motsvarar de på bilden med antalet ben!

F.)
12 st Rotary encorders;
(http://se.farnell.com/bourns/pec11-4215f-s0012/increm-encoder-dual-60rpm-12mm/dp/1838963?Ntt=BOURNS+-+PEC11-4215F-S00

G.)
10 st Rotary potentiometer;
(http://www.kjell.com/sortiment/el/elektronik/motstand/panelpotentiometer-1-kohm-p90310)
____________________________________________________________________________________________
Frågor och funderingar:
1.)
Anslutning av A & B är snarlika varandra och vad jag vet är skilnaden enbart behovet av antalet digitala pinnar?

2
A kräver 1 pinne medans B kräver 2, inte sant?

3.)
Vad gäller motstånd så ska jag enbart använda de interna motstånden (kräver en extra rad kod men det är det värt). Om man aktiverar
de interna som har mellan 20-40kohm, kan det bli för mycket motstånd än det som krävs? Det jag dock har hört ska det inte vara
något problem, ialla fall när det gäller Arduino!

4.)
Vad gäller benen. Har jag insett (rätta mig om jag har fel)! :);
4,1
on/off switcharna två ben. Ett för power 5V och en för GRD och I/O pinne?
4,2
on/off/on switcharna har 3 ben. Ett för power 5V och en för GRD + en för I/O pinne?

5
Switcharna C - E, enligt bilden är DP switchar och vad jag förstått är de 2 switchar i en?
5,1
Enligt bilden har dessa 6 ben uppdelat på 2 kollummer och 3 rader. Nu har jag inte kollat upp dessa än men den som har dessa switchar
kan redan nu vägleda mig mot rätt anslutning!?

6
Nu fattar jag att själva Arduino kortet inte kan ta skada av felkoppling men hur är det med switcharna kan de skadas om man kopplar
t.ex. 5V i fel ben m.m.?

7
Vad gäller switcharna har jag läst i:
Alla switcharna, encorders och potentiometrarna ska kopplas till 2 st Arduino Mega2560 och korten ska dela på bördan :)

8
Anslutning av F tänker jag utgå från denna sida: http://www.circuitsathome.com/mcu/reading-rotary-encoder-on-arduino

OBS: Zooma inte bilderna, blir oläsliga då DS
Hoppas en del är rätt uppfattat :)

Hoppas på bra hjälp eller bra vägledning//
Mvh Fredrik

perhof


____________________________________________________________________________________________
Frågor och funderingar:
1.)
Anslutning av A & B är snarlika varandra och vad jag vet är skilnaden enbart behovet av antalet digitala pinnar?


Korrekt. De är snarlika varandra men B har två olika ON-lägen (den är två switchar) och behöver två digitala pinnar.


Quote

2
A kräver 1 pinne medans B kräver 2, inte sant?


Det stämmer


Quote

3.)
Vad gäller motstånd så ska jag enbart använda de interna motstånden (kräver en extra rad kod men det är det värt). Om man aktiverar
de interna som har mellan 20-40kohm, kan det bli för mycket motstånd än det som krävs? Det jag dock har hört ska det inte vara
något problem, ialla fall när det gäller Arduino!


Det blir inte för mycket motstånd. Du kan utan problem köra med interna pull-ups för att spara på externa komponenter.


Quote

4.)
Vad gäller benen. Har jag insett (rätta mig om jag har fel)! :);
4,1
on/off switcharna två ben. Ett för power 5V och en för GRD och I/O pinne?


Jag antar att GRD betyder Ground?
Koppla aldrig 5V och GND till samma switch. Slår du på switchen då har du kopplat ihop 5V och GND med varandra med blå rök som belöning.
Gör istället så här:
Om du kör med intern pull-up i Arduino kopplar du ena benet på switchen till en digital pinne, andra benet kopplar du till jord.
När du slår på internal pull-up på din digitala ingång med digitalWrite(switchpinne, HIGH) så kommer den att läsas som HIGH ända tills du ställer switchen i läge ON då din pinne kommer att kopplas till jord via switchen och läsas som LOW.


Quote

4,2
on/off/on switcharna har 3 ben. Ett för power 5V och en för GRD + en för I/O pinne?


Nej, den har tre ben för att den har två switchar.
Den används likadant som i 4.1 men du behöver två digitala ingångar istället för en.
Pinnen i mitten kopplar du till jord. De andra två till varsin digital ingång med interna pull-ups aktiverade.
Sedan läser du av båda switcharna som om det varit två separata switchar.


Quote

5
Switcharna C - E, enligt bilden är DP switchar och vad jag förstått är de 2 switchar i en?

5,1
Enligt bilden har dessa 6 ben uppdelat på 2 kollummer och 3 rader. Nu har jag inte kollat upp dessa än men den som har dessa switchar
kan redan nu vägleda mig mot rätt anslutning!?


Ja, de är säkert två switchar i en men du kommer kanske inte ha någon glädje av den extra switchen eftersom den kommer att ha exakt samma läge som den första. Har du läst av den ena switchen från din programvara så tjänar det ju inget till att läsa av den andra också eftersom du redan vet vad den kommer att svara.
Däremot skulle du kunna använda den andra kolumnen med stift för att till exempel koppla in en LED som visar att switchen står i läge ON.
Koppla i så fall jord på mittenbenet på andra kolumnen också och så kopplar du det ben som du vill ha indikering på till katoden på en LED. Koppla anoden på LED:en till 5V via resistor.


Quote

6
Nu fattar jag att själva Arduino kortet inte kan ta skada av felkoppling men hur är det med switcharna kan de skadas om man kopplar
t.ex. 5V i fel ben m.m.?



Det går utmärkt att skada kortet genom att koppla fel, det handlar bara om att koppla tillräckligt fel.
Du kan inte skada kortet genom att koppla 5V eller GND till olika ingångar men om du t.ex. råkar koppla ihop 5V och GND med varandra dröjer det inte innan någon ryker.
Switcharna skulle teoretiskt sett kunna skadas om du kopplar 5V på ena benet och GND på det andra och sedan sluter switchen. Nu levererar nog inte Arduinon nog mycket ström för att skada just de switchar du köpt utan den brinner nog upp själv istället.


Quote

7
Vad gäller switcharna har jag läst i:
Alla switcharna, encorders och potentiometrarna ska kopplas till 2 st Arduino Mega2560 och korten ska dela på bördan :)


Vad har du läst och hur var frågan?


Quote

8
Anslutning av F tänker jag utgå från denna sida: http://www.circuitsathome.com/mcu/reading-rotary-encoder-on-arduino


Kan inte uttala mig om hur väl det kommer att fungera för jag har inte testat koden men det står en intressant mening på slutet:
Quote
In order for this method to work well, read_encoder() function needs to be called fairly often .

Du får väl testa hur det kommer att fungera med resten av din kod.
Detta med "called fairly often" gäller i viss mån för samtliga av dina switchavläsningar. Eftersom du har för många switchar för att använda dig av interrupts kommer du att behöva scanna av switcharna från en loop ganska ofta för att inte missa när användaren tryckt på en momentanbrytare.
Just rotary encoders kräver ännu högre avläsningshastighet. Oftast brukar man använda interrupts för dem. Du kan testa det om du får problem.
Finns massor av lösningar här: http://arduino.cc/playground/Main/RotaryEncoders

Hej

Du ska ha ett stort tack hittills med din hjälp :)

Du menar:
Jag antar att GRD betyder Ground?
Rätt

Koppla aldrig 5V och GND till samma switch. Slår du på switchen då har du kopplat ihop 5V och GND med varandra med blå rök som belöning.

Du menar att koppla dem direkt till varandra, följden blir ju kortslutning, det vill man inte ha!

Denna encorder: http://www.circuitsathome.com/mcu/reading-rotary-encoder-on-arduino verkar inte vara kopplad till 5V. Jag började fundera om det är så att man kan styra ström via de digitala portarna med (HIGH, LOW). Det låter rimligt att man inte har 5V pinnen med alls när det gäller switchar?  :smiley-eek:  :)

På mina pottar ska jag det, jag följer exemplet och har testat mina pottar på exempel koden och det fungerar bra där!

Summan av detta är att om man inte har i koden t.ex.: digitalWrite(ENC_B, HIGH);
Skall pinnen 5V användas och t.ex.   digitalWrite(ENC_B, HIGH); har man ju för att kunna läsa av switchar!

Om jag uppfattat rätt så har jag ett bra hum hur jag skall koppla :)

Om jag tänkt fel förstår jag min oror :)r  :smiley-roll: :smiley-roll:

Mvh Fredrik

perhof

Quote

Denna encorder: http://www.circuitsathome.com/mcu/reading-rotary-encoder-on-arduino verkar inte vara kopplad till 5V. Jag började fundera om det är så att man kan styra ström via de digitala portarna med (HIGH, LOW). Det låter rimligt att man inte har 5V pinnen med alls när det gäller switchar?  :smiley-eek:  :)


Det stämmer så länge du använder intern pull-up.


Quote

Summan av detta är att om man inte har i koden t.ex.: digitalWrite(ENC_B, HIGH);
Skall pinnen 5V användas och t.ex.   digitalWrite(ENC_B, HIGH); har man ju för att kunna läsa av switchar!

Om jag uppfattat rätt så har jag ett bra hum hur jag skall koppla :)

Om jag tänkt fel förstår jag min oror :)r  :smiley-roll: :smiley-roll:


Om du använder digitalWrite(ENC_B, HIGH); så aktiverar du intern pull-up (motstånd till 5V) och behöver ingen koppling till 5V.
Det har du uppfattat rätt.

Om du däremot inte kör med internal pull-up så behöver du koppla ett motstånd mellan den aktuella ingången och 5V för att förhindra att signalen "flyter" någonstans mellan hög och låg.
Detta gäller alla switchar, tryckknappar och rotary encoders och andra givare som ska ge digitala nivåer.

Hej

Tack då har jag vad jag behöver för att slutföra mitt kopplingschema :)

Fråga nr 7 är flerformulerad!

Jag skall koppla allt till 2 Mega2560 kort så dessa får lika mycket att arbeta med!

Mvh Fredrik

Hej

Vet någon hurvida det är klokt att korta ner mina potentiometrar eller inte? Tror det inte gör något men ändå! :)

Mvh Fredrik

perhof


Vet någon hurvida det är klokt att korta ner mina potentiometrar eller inte? Tror det inte gör något men ändå! :)


Om du menar att korta ner skaftet så är det väl inga problem.

Trodde inte det men man vet aldrig//
Mvh Fredrik

#8
Sep 21, 2012, 05:29 pm Last Edit: Sep 22, 2012, 11:27 am by freddehboy Reason: 1
Hej

Då för mina anslutningar mm har jag valt nedanstående produkter:

Frågor:
1.)
Kabel: http://www.molectric.com/p295/Kopplingstrad-0,2/product_info.html

1a.)
Jag tänker koppla GRD (Svart) så att det splittas ut till de olika komponenterna, nedan förklarar jag hur det ska kopplas:
1 - Från kortens grd kopplar jag en kabel (Solderless Breadboard Jumper Cables for Arduino Male - Male) till en sockerbit eller liknande!
2 - Från sockerbiten kopplar jag ut till splittdosor till projektets olika paneler där mina komponenter ska sitta på. Den största panelen består av ca 25  
    komponenter av olika dess slag
3 - Vid panelen ska en splitt dosa finnas dit jag kopplar alla mina 25 komponenter

Frågan är hur mycket är max för en kabel?

Jag menar "Solderless Breadboard Jumper Cables for Arduino Male - Male" från ebay måste ju klara allt mina komponenter eller 50% för det finns ju 2 grd portar!?

Man vill ju inte få rökta kablar hehe  8)

2.)
Mina pottar och rotary encorders vill jag inte löda och tänker ha något liknande som "http://www.molectric.com/p630/Skarvhylsa,-klaem-med-krympslang/product_info.html") men går dessa att klämma på små ben som är ca 2-3 mm är mellanrummet så pass att det går, man kan ju böja på benen, dock lite!?

Vad rekommenderas du för kabel annars till just det ändamålet?

Om jag får svar på mina frågor så skriver jag det här :)

Uppdatering:
Hittade detta om kabel:
http://www.conrad.se/KOPPLINGS--OCH-STYRKABEL-LIY-0%2c22-SVART-10M.htm?websale7=conrad-swe&pi=608556&Ctx={ver%2F7%2Fver}{st%2F3ec%2Fst}{cmd%2F0%2Fcmd}{m%2Fwebsale%2Fm}{s%2Fconrad-swe%2Fs}{l%2F01-aa%2Fl}{sf%2F%3Cs1%3EKOPPLINGS-+OCH+STYRKABEL+%3C%2Fs1%3E%2Fsf}{p1%2Fab3e7d6fb47eb8672a1e0288e953cc58%2Fp1}{md5%2Ff9eab32fe03475f6b9cba937df35fa84%2Fmd5}

"Elektriska och mekaniska egenskaper:
Driftspänning:
Test spänning:
Isolationsresistans:
Ledare motstånd:
Temperaturområde vid vila:
Temperaturbereichin rörelse
500 v
1200 V
min.200
Mbdkm
r? & L.
90 OlUIvkm
- 30 till + 7o "C
5 till + 70 ° C -

Så den jag hittat på Moletric borde klara belastningen :)?

Du kan bara bekräfta det?
Tack på förhand//
Mvh Fredrik

perhof


1a.)
Jag tänker koppla GRD (Svart) så att det splittas ut till de olika komponenterna, nedan förklarar jag hur det ska kopplas:
1 - Från kortens grd kopplar jag en kabel (Solderless Breadboard Jumper Cables for Arduino Male - Male) till en sockerbit eller liknande!
2 - Från sockerbiten kopplar jag ut till splittdosor till projektets olika paneler där mina komponenter ska sitta på. Den största panelen består av ca 25  
    komponenter av olika dess slag
3 - Vid panelen ska en splitt dosa finnas dit jag kopplar alla mina 25 komponenter

Frågan är hur mycket är max för en kabel?

Jag menar "Solderless Breadboard Jumper Cables for Arduino Male - Male" från ebay måste ju klara allt mina komponenter eller 50% för det finns ju 2 grd portar!?

Man vill ju inte få rökta kablar hehe  8)


Det beror på om du har tänkt blanda in någon last. Du har inte visat något kopplingsschema så jag kan inte säga säkert.
Om de bara ska användas som analoga och digitala givare och kopplas direkt tillbaka till ingångar på en Arduino så har du inget last alls och du behöver inte bry dig om kablarnas kapacitet för då handlar det bara om signaler.
Potentiometrar, encoders och switchar förbrukar ingen ström och orsakar därför ingen belastning i sig själva.
Om du kopplar dem till någon komponent som förbrukar ström så är det en annan sak.


Quote

2.)
Mina pottar och rotary encorders vill jag inte löda och tänker ha något liknande som "http://www.molectric.com/p630/Skarvhylsa,-klaem-med-krympslang/product_info.html") men går dessa att klämma på små ben som är ca 2-3 mm är mellanrummet så pass att det går, man kan ju böja på benen, dock lite!?

Vad rekommenderas du för kabel annars till just det ändamålet?


Jag har ingen aning. Har aldrig använt sådana hylsor.


Quote

Så den jag hittat på Moletric borde klara belastningen :)?


Återigen. Har du någon belastning eller bara signaler?

#10
Sep 22, 2012, 04:05 pm Last Edit: Sep 22, 2012, 04:12 pm by freddehboy Reason: 1
Hej



1a.)
Jag tänker koppla GRD (Svart) så att det splittas ut till de olika komponenterna, nedan förklarar jag hur det ska kopplas:
1 - Från kortens grd kopplar jag en kabel (Solderless Breadboard Jumper Cables for Arduino Male - Male) till en sockerbit eller liknande!
2 - Från sockerbiten kopplar jag ut till splittdosor till projektets olika paneler där mina komponenter ska sitta på. Den största panelen består av ca 25  
    komponenter av olika dess slag
3 - Vid panelen ska en splitt dosa finnas dit jag kopplar alla mina 25 komponenter

Frågan är hur mycket är max för en kabel?

Jag menar "Solderless Breadboard Jumper Cables for Arduino Male - Male" från ebay måste ju klara allt mina komponenter eller 50% för det finns ju 2 grd portar!?

Man vill ju inte få rökta kablar hehe  8)


Det beror på om du har tänkt blanda in någon last. Du har inte visat något kopplingsschema så jag kan inte säga säkert.
Om de bara ska användas som analoga och digitala givare och kopplas direkt tillbaka till ingångar på en Arduino så har du inget last alls och du behöver inte bry dig om kablarnas kapacitet för då handlar det bara om signaler.
Potentiometrar, encoders och switchar förbrukar ingen ström och orsakar därför ingen belastning i sig själva.
Om du kopplar dem till någon komponent som förbrukar ström så är det en annan sak.


Projektet utgår från, som det är nu, enbart från "Potentiometrar, encoders och switchar" de ska bara hantera signaler och läsas av korten hur det olika står inställda. Dessa har inget som lyset m.m. så de förbrukar ingen ström !

Jag antar att det fungerar ungefär som nedan:
1 - Jag slår på ström för Arduino
2 - Beroende på hur jag kodar så börjar kortet läsa vad jag har inkopplat till ingångarna
3 - Det handlar om att få en signal att tas upp och brytas av pinen och kontrollen på kortet
4 - Signalerna sköter kortet och det är inte komponenterna i sig som hämtar signalen utan den fås av kortet (Komponenten förbrukar dvs. inte ström

Om jag kopplar in led lampor senare är det en helt annan sak men dem får man koppla för sig och programmera så att det fungerar hur jag nu vill det :?

Fördelen är ju att jag har Arduino så jag kan vara flexibel!
Quote


För fråga två får jag testa och se!

Jag återkommer och berättar hur det går :)

Tack för hjälpen. roligt snart kan man börja koda :) //
Mvh Fredrik

Tjena :)

Nu har jag börjat att labba med koden, se nedan:
/*
Denna kod tillhör "APU & GRD" på vänster panel (Mega2560 R3, kort 1).
Komponenterna är 5 st (mom/off/mom, L. Metall) vilket innebär att de tar upp 2 digitala pinnar styck, dessa är anslutna till D29 - D78 på Mega2560 R3, kort 1!

Se (Panelers positioner) i mappen (FSX panels bygge) för att se var panelen är belägen!

Se (FSX Panels - Elektronik mapp) i mappen (FSX panels bygge) för vad ID nr betyder!

Komponentens ID nr  Kompponenterns tillhörande pinne:
281VAGE             D29 & D30
291VAGE             D31 & D32
301VAGE             D33 & D34
311VAGE             D35 & D36
321VAGE             D37 & D38

Se (FSX Panels - Elektronik mapp) i mappen (FSX panels bygge) för vilken funktion ovan ID nr representerar!

Komponentens Pinne   ID nr i koden  Utskrivning till serial monitor
D29                  VAGE28A        buttonState28A
D30                  VAGE28B        buttonState28B
D31                  VAGE29A        buttonState29A
D32                  VAGE29B        buttonState29B
D33                  VAGE30A        buttonState30A
D34                  VAGE03B        buttonState30B
D35                  VAGE31A        buttonState31A
D36                  VAGE31B        buttonState31B
D37                  VAGE32A        buttonState32A
D38                  VAGE32B        buttonState32B
*/

//Digital pinne 29 - 38 har en switch tillkopplat till sig, ge det ett namn:
int VAGE28A = 29;
int VAGE28B = 30;
/*int VAGE29A = 31;
int VAGE29B = 32;
int VAGE30A = 33;
int VAGE30B = 34;
int VAGE31A = 35;
int VAGE31B = 36;
int VAGE32A = 37;
int VAGE32B = 38;
*/

//Detta körs första gången du slår på strömmen eller resettar kortet:

void setup() {
//Initiserar serial kommunikation på 9600 bitar/sekund:

Serial.begin(9600);
// Sätter på "internal_pullup" motstånd på komponenternas pinnar:
pinMode(VAGE28A, INPUT_PULLUP);
//pinMode(VAGE28B, INPUT_PULLUP):
}
/*
pinMode(VAGE29A, INPUT_PULLUP);
pinMode(VAGE29B, INPUT_PULLUP);
pinMode(VAGE30A, INPUT_PULLUP);
pinMode(VAGE30B, INPUT_PULLUP);
pinMode(VAGE31A, INPUT_PULLUP);
pinMode(VAGE31B, INPUT_PULLUP);
pinMode(VAGE32A, INPUT_PULLUP);
pinMode(VAGE32B, INPUT_PULLUP);
*/
//loop rutinen körs kontinuerligt till du slår av strömmen:

void loop() {
// läser statusen på pinnarna:
int buttonState28A = digitalRead(VAGE28A);
  if (digitalRead(VAGE28A) == HIGH){Serial.print("0");} else{Serial.print("UP");}
  if (digitalRead(VAGE28B) == HIGH){Serial.print("0");} else{Serial.print("DN");}

/*
int buttonState28B = digitalRead(VAGE28B);
int buttonState29A = digitalRead(VAGE29A);
int buttonState29B = digitalRead(VAGE29B);
int buttonState30A = digitalRead(VAGE30A);
int buttonState30B = digitalRead(VAGE30B);
int buttonState31A = digitalRead(VAGE31A);
int buttonState31B = digitalRead(VAGE31B);
int buttonState32A = digitalRead(VAGE32A);
int buttonState32B = digitalRead(VAGE32B);
*/
// Skriver ut statusen av komponenten på serial monitor:
/*
Serial.println(buttonState28A);

/*
Serial.println(buttonState28B);
Serial.println(buttonState29A);
Serial.println(buttonState29B);
Serial.println(buttonState30A);
Serial.println(buttonState30B);
Serial.println(buttonState31A);
Serial.println(buttonState31B);
Serial.println(buttonState32A);
Serial.println(buttonState32B);
*/
delay(1000);
}

På serial monitor får jag detta nedan:
0DN0DN0000000000UPDN0DN0DN0DN0DN0000000DN00000DN0DN0DN0DN0DN0DN0DN0DN00000000000000000DN0DN0DN0DN0DN0DN0DN000000000DN0DN0DN

Fast jag inte trycker på switchen?

Mvh Fredrik

perhof

Den här raden är kommenterad. Därför "flyter" ingången
Code: [Select]
//pinMode(VAGE28B, INPUT_PULLUP):

Dessutom slutar den med kolon istället för semikolon vilket kommer generera ett felmeddelande om du tar bort kommenteringen.
Är det därför den är kommenterad?

Hej

Det är i sin ordning då jag testar och just den du pekar på ingår inte i koden. Jag tror jag vet varför den uppförde sig konstigt dvs. serial monitor gav så konstiga signaler, splittern jag har till GRD fungerar nog inte som tänkt?!

Mvh Fredrik

perhof

Vad är det då som ingår i koden och varför postar du en annan kod än den du kör?

Vi kommer inte att kunna hjälpa dig med dina kopplingarna eftersom du inte visat hur de ser ut men du kanske har löst problemet redan.

Go Up