Aktivera LEDs med knapptryckningar

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
jesse
Inlägg: 9241
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Aktivera LEDs med knapptryckningar

Inlägg av jesse »

Det du skriver Jesse låter också bra
Nja... fast bara en av oss kan ha rätt... Verkar som om jag missuppfattade vad som var vad här... Du ska alltså ha flera knappar, som X-IL sa, inte fler signaler ut... i så fall funkar det ju bra med dioderna som vi sa innan. :)
Användarvisningsbild
oskars
Inlägg: 564
Blev medlem: 25 september 2010, 16:38:25
Ort: Stockholm

Re: Aktivera LEDs med knapptryckningar

Inlägg av oskars »

Råkade beställa en Arduino Mega för att leka lite med =) Ska kanske bygga en liknande kontroller eller ersätta gamepad-hjärnan med den. Arduino verkar så otroligt kul!

Har lite funderingar över mina kopplingar jag gjort på gamepaden. Visst är det bara att ansluta min nuvarande GND till GND på Arduinon och sen 5V till Arduinons 5V och signalerna till pinnarna på Arduinon såklart. Sen borde ju LEDarna funka som dom gjorde innan :)

Arduinon passar bra till detta projektet, eftersom den erbjuder 54st digitala ingångar, och 16st analoga. Blir perfekt :)

Bild
Användarvisningsbild
Klas-Kenny
Inlägg: 11985
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Aktivera LEDs med knapptryckningar

Inlägg av Klas-Kenny »

Inte för att jag gillar Arduino (Känns inte så "riktigt" om man säger så, föredrar rena microprocessorer som PIC eller AVR), men ändå kul att du kommit in i µC'ernas värld, lycka till!
Användarvisningsbild
oskars
Inlägg: 564
Blev medlem: 25 september 2010, 16:38:25
Ort: Stockholm

Re: Aktivera LEDs med knapptryckningar

Inlägg av oskars »

Tack!

Förstår vad du menar Klas-Kenny! Men det är lagom "på riktigt" för mig :)
Är inte programmeringen och så mycket mer avancerad så fort man kommer utanför Arduino till t.ex PIC?


Kopplingarna bör va dom samma va?
Användarvisningsbild
Klas-Kenny
Inlägg: 11985
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Aktivera LEDs med knapptryckningar

Inlägg av Klas-Kenny »

Nja, PIC kan ju programmeras med C, vilket är ungefär lika lätt som Arduino, Assembly där emot är lite klurigare, men det är trevligt och väldigt lärorikt att se exakt hur det fungerar på (nästan) bitnivå.

Att koppla in med spänningar osv. bör vara exakt samma, ja.
Användarvisningsbild
oskars
Inlägg: 564
Blev medlem: 25 september 2010, 16:38:25
Ort: Stockholm

Re: Aktivera LEDs med knapptryckningar

Inlägg av oskars »

Det är så konstigt för det verkar som att det behövs motstånd för att koppla in en knapp?

Kolla denna bilden:
Bild

Det står så här angående det:
There's a 100Ω resistor we use to connect the input pin to either HIGH or LOW voltage. Why is it there? Well, lets say you accidentally set P2 to be an OUTPUT type pin, but then you connected it to 5V. If you write a LOW to the pin (0V) but its connected to HIGH (5V), you've basically caused a short circuit at that pin. This isn't very good for the pin and could damage it! The 100Ω resistor acts as a buffer, to protect the pin from short circuits.
Jag fattar ju att motståndet finns där för att inte pajja PINen, men jag behövde inte köra såna motstånd till gamepad pcb:t?

Känns konstigt att behöva använda det helt plötsligt. Och är det så, borde inte mina motstånd till LEDarna räcka?

:)
Användarvisningsbild
Klas-Kenny
Inlägg: 11985
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Aktivera LEDs med knapptryckningar

Inlägg av Klas-Kenny »

Tror inte det är någon risk att du råkar göra om en ingång till utgång på Gamepaden, så det är ju ingen risk att det går sönder då :wink:

Visst är det en bra tanke att köra med motstånd där, av den anledning de beskriver, personligen har jag dock aldrig brytt mig om det. Kanske lite mera nödvändigt att vara försiktig med en Arduino som kostar några hundra, än en liten PIC värd ett par tior dock.
Användarvisningsbild
oskars
Inlägg: 564
Blev medlem: 25 september 2010, 16:38:25
Ort: Stockholm

Re: Aktivera LEDs med knapptryckningar

Inlägg av oskars »

Åhå, så det är om jag tabbar mig och göra fel med ingång/utgång?

Men lägger jag till 1k ohm motstånd till varje knapp så kommer ju det strula med mina LEDs :)
Användarvisningsbild
jesse
Inlägg: 9241
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Aktivera LEDs med knapptryckningar

Inlägg av jesse »

Men du gör inte fel. :) Om du en gång satt dessa pinnar som ingångar så behöver du ju aldrig ändra på det någonsin. Skit i motståndet, det är helt onödigt, om du vet vad du gör.

Nu vet jag inte vad du tänkt göra, men du ska alltså ha ingångar på en Arduino kopplad till knapparna? Det finns ju fortfarande inget hinder att ha 100-1000-ohm motstånd till ingången, det påverkar ju i så fall varken knappar eller LED eller signalen till gamepaden.
Användarvisningsbild
Klas-Kenny
Inlägg: 11985
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Aktivera LEDs med knapptryckningar

Inlägg av Klas-Kenny »

Why is it there? Well, lets say you accidentally set P2 to be an OUTPUT type pin, but then you connected it to 5V. If you write a LOW to the pin (0V) but its connected to HIGH (5V), you've basically caused a short circuit at that pin.
Står ju ganska tydligt att det är för att skydda mot om du råkar konfigurera en pinne till utgång av misstag ;)
Användarvisningsbild
oskars
Inlägg: 564
Blev medlem: 25 september 2010, 16:38:25
Ort: Stockholm

Re: Aktivera LEDs med knapptryckningar

Inlägg av oskars »

jesse skrev:Men du gör inte fel. :) Om du en gång satt dessa pinnar som ingångar så behöver du ju aldrig ändra på det någonsin. Skit i motståndet, det är helt onödigt, om du vet vad du gör.

Nu vet jag inte vad du tänkt göra, men du ska alltså ha ingångar på en Arduino kopplad till knapparna? Det finns ju fortfarande inget hinder att ha 100-1000-ohm motstånd till ingången, det påverkar ju i så fall varken knappar eller LED eller signalen till gamepaden.
Jag ska bara försöka föra över det jag gjort tidigare i denna tråden, till Arduinon. Arduinon ska sen skicka serial-signaler vid knapptryck som sen ska tolkas av programet JunXion som sedan konverterar serial-signalerna till MIDI =)

Klas-kenny, jo, kanske :) :) :) Sorry!


Edit: För att förtydliga. Ja ska bara köra arduino. Alltså ersätta gamepaden med arduinon.
Användarvisningsbild
oskars
Inlägg: 564
Blev medlem: 25 september 2010, 16:38:25
Ort: Stockholm

Re: Aktivera LEDs med knapptryckningar

Inlägg av oskars »

hehe... nej... jag är inte färdig med detta projektet än... Finns ju så mkt annat kul att göra... Plus att jag valt att bygga med Arduino nu, så det är ju lite till att lära sig... Och jag är ju nybörjare så att felsöka är inte så lätt... Men jag gör mitt bästa, och behöver nu hjälp igen... :roll:

Jag tycker det är jättebra att visa med filmer. Så jag har gjort en liten YouTube-film som bara ni här på forumet kan titta på. Vore jättetacksam om någon vill lyssna på min röst och mina problem!

Hej Bullen...


Det blev ganska dålig kvalité på filmen tyvärr. Men det kanske fungerar! =)
Stor humor lovas, stor kunskap kan jag INTE lova. =)
Användarvisningsbild
Klas-Kenny
Inlägg: 11985
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Aktivera LEDs med knapptryckningar

Inlägg av Klas-Kenny »

Det är inte så att Arduinon har några inbyggda pull-up eller pull-down, som då ger ström till LED'arna när de kopplas in?

Kolla igenom dokumentationen för Arduino om det finns någon "Internal pull-up/pull-down", i så fall är nog vad du vill att inaktivera det.

Har ingen koll på just Arduino, men på PIC finns detta, och ofta då bara på vissa portar, är det samma sak på Arduino så kan det förklara varför det bara ger ström på vissa utav LED'arna.

Off Topic: Skön dialekt :D
Användarvisningsbild
oskars
Inlägg: 564
Blev medlem: 25 september 2010, 16:38:25
Ort: Stockholm

Re: Aktivera LEDs med knapptryckningar

Inlägg av oskars »

=) Tack! Från Lidköping, Västergötland!

Saxat från denna sidan: http://www.arduino.cc/en/Tutorial/DigitalPins
There are also convenient 20K pullup resistors built into the Atmega chip that can be accessed from software. These built-in pullup resistors are accessed in the following manner.
pinMode(pin, INPUT); // set pin to input
digitalWrite(pin, HIGH); // turn on pullup resistors

Note that the pullup resistors provide enough current to dimly light an LED connected to a pin that has been configured as an input. If LED's in a project seem to be working, but very dimly, this is likely what is going on, and the programmer has forgotten to use pinMode() to set the pins to outputs.
Note also that the pullup resistors are controlled by the same registers (internal chip memory locations) that control whether a pin is HIGH or LOW. Consequently a pin that is configured to have pullup resistors turned on when the pin is an INPUT, will have the pin configured as HIGH if the pin is then swtiched to an OUTPUT with pinMode(). This works in the other direction as well, and an output pin that is left in a HIGH state will have the pullup resistors set if switched to an input with pinMode().

Och jag definierar dom så här i min (JunXions) kod:

Kod: Markera allt

//int   inputN[3] = {inputType, pinNo, dataResolution}

int  input1[3] = {'d', 23, 1}; 
int  input2[3] = {'d', 25, 1}; 
int  input3[3] = {'d', 27, 1}; 
int  input4[3] = {'d', 29, 1}; 
int  input5[3] = {'d', 31, 1}; 
int  input6[3] = {'d', 33, 1}; 
int  input7[3] = {'d', 35, 1}; 
int  input8[3] = {'d', 37, 1}; 
int  input9[3] = {'d', 39, 1}; 
int  input10[3] = {'d', 41, 1}; 
int  input11[3] = {'d', 43, 1}; 
int  input12[3] = {'d', 45, 1}; 
int  input13[3] = {'d', 47, 1}; 
int  input14[3] = {'d', 49, 1}; 
int  input15[3] = {'d', 51, 1}; 
int  input16[3] = {'d', 53, 1};

#define kUsedInputs  16       // the 'numUsedInputs' first inputs in the list are currently used
    
// IMPORTANT: always first define the digital inputs, then the analog ones!
int* inputs[kUsedInputs] = {input1,input2,input3,input4,input5,input6,input7,input8,input9,input10,input11,input12,input13,input14,input15,input16,};
                       
unsigned short switches[4] = {0,0,0,0};          // memory space for up to 64 switches

int numUsedInputs = kUsedInputs;                                                
int numUsedAnalogInputs = 0;                    // the 'o' inputs are also listed as analog inputs....
int numUsedDigitalInputs = 16;
int numDataBytes;



Typ... Förstår inte så mycket av det där med pull-down och pull-up resistorer... Men jag har trott att jag kan använda min krets som jag visar i filmen, den som dimmar leddarna... ?


EDIT: Den här tyckte jag skulle funka som PULL-DOWN? Se filmen vid 02:16:
Användarvisningsbild
Klas-Kenny
Inlägg: 11985
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Aktivera LEDs med knapptryckningar

Inlägg av Klas-Kenny »

Koden vågar jag inte säga något om, men det låter för mig som att det är pull-up som orsakar detta.

Pull-up är helt enkelt ett hög-ohmigt (tydligen 20k ohm i det här fallet) motstånd mot +5V, detta för att förhindra sk. flytande pinnar.
En ingång får aldrig vara flytande, dvs. varken "1" eller "0", för då vet µC'n inte vilket det är, som gör att mycket kan bli galet (hoppar mellan funktioner hej i vilt osv.).

Men du bör klara dig utan dessa, då det dras mot jord (Blir i princip pull-down) genom LED'arna.
Eller om du har kopplat dem mot +5V så blir det pull-up, så inga ingångar ska bli flytande även utan "internal pull-up".
Skriv svar