Gå til innhold

Den lille Arduino-tråden


Anbefalte innlegg

som sagt har jeg aldri gått på vgs... skal begynne nå til høsten og jeg er ikke utannet noe radiomontør.... så nei er ikke ekspert.... lagt for noen dager sien en 24x8matrix og den funker som den skal og når jeg lagt den var det ingen problemer... jeg kan ikke alt men fer te det jeg vil bare med litt hjelp på veien...

Lenke til kommentar
Videoannonse
Annonse

Dersom du vil ha alle led's til å lyse, hvorfor bruke shiftregister i det hele tatt? Koble dem rett på 5v (med motstander selvsagt) så lyser de :)

 

Du vil jo bruke shiftregistre til å kunne styre dem (slå den av og på, uavhengig av hverandre), så ja, du trenger litt kode på arduinoen. Hva skal du ellers med en mikrokontroller?

 

Tror det er en god utfordring for deg, til å styre 8 leds med en mikrokontroller, via ett shiftregister. Lage en enkel teller eller noe. Hva som helst egentlig. For nå virker det ikke som om du har snøring hva ett shiftregister er (Og da heller ikke hvorfor du vil ha slike).

 

må bare si at eg fikk denne her te uten problem... http://www.arduino.cc/en/Tutorial/ShiftOut men får ikke til 164... menne 595 e ikke noen problem... vet ikke koff jeg ikke får til 164 menne får det bare ikke til...

Lenke til kommentar

Såså, slapp av litt da. Jeg sier ikke at du ikke kan noe, alle må da starte et sted. Jeg betviler ikke at du har fått til/laget litt av hvert. Grunn til at jeg ikke gir deg en guide på hvordan du kobler ting, er at jeg tror det er mer lærerikt for deg å faktisk finne dette ut på egenhånd. Jeg synes egentlig at det er kult du begynner med mikrokontrollere før vgs.

 

Jeg ser forsåvidt og at jeg var litt kjapp i beskrvelsen av forskjellen mellom 164 og 595, så jeg prøver igjen, for å få det riktig :) Hovedforskjellen er at på 164 legges data på utgangene så snart de klokkes inn på registeret. På 595 kan du velge at dataene du klokker inn ikke skal vises på utgangene før du har klokket alle dataene ut.

 

Den guiden der er en veldig grei fremgangsmåte på hvordan bli kjent med en IC, og en tilsvarende fremgangsmåte kan være en god ide for 164 og. Forstod du hvordan det virket? Hvorfor det kobles slik du koblet det? Eller følger du gider bare blindt til det virker, og tenker "done deal"?

Det eneste som jeg personlig synes er litt dumt med den guiden er at den "gjemmer" hvordan shiftregistrene fakisk får dataene, bak funksjonen "shiftOut". Det kan kanskje være lærerikt å sende dataene ut manuelt, bit for bit, når ting ellers virker, for å få en enda bedre forståelse av shiftregisteret.

 

Til problemet ditt med 164:

Du sier ikke hvordan du koblet 164, når du ikke fikk den til? Fortell oss hvordan du koblet, og gjerne og ett par relevante linjer fra koden din, så kan jeg sikkert peke i rett vei for å få det til :)

  • Liker 1
Lenke til kommentar

jeg brukte helt lik metode på 24x8 matrixen min..

 

det var en kamerat her i gårkveld å ga meg noen koder... menne finner de ikke nå :( jeg kobledt 5v i vcc gnd på gnd, 1 og 2 ifra aruino inn på serial inpurt a og b på shifregistoren... også koblet jeg 4 led på hver side av shifregistoren

 

men hvis du vil så kan du gjærne bare skrive en liten kode te d? så kan eg se koss den funker også prøve litt selv :) (er ikke noe god på koder son det er sagt :p )

Lenke til kommentar

Såså, slapp av litt da. Jeg sier ikke at du ikke kan noe, alle må da starte et sted. Jeg betviler ikke at du har fått til/laget litt av hvert. Grunn til at jeg ikke gir deg en guide på hvordan du kobler ting, er at jeg tror det er mer lærerikt for deg å faktisk finne dette ut på egenhånd. Jeg synes egentlig at det er kult du begynner med mikrokontrollere før vgs.

 

Enig!

Lenke til kommentar

Første steg vil være å kikke i databladet, for å forstå hva de ulike pinnene på shiftregisteret er, og deretter koble det riktig :)

 

Steg to blir å skrive kode. Forslag til pseudokode for å legge ut en byte på ett shiftregister:

 

for hvert bit som skal klokkes ut:
   Hvis bit == 1:
    Sett datautgang høy
   elles:
    Sett datautgang lav
   sett klokkeutgang høy
   sett klokkeutgang lav

Lenke til kommentar

Første steg vil være å kikke i databladet, for å forstå hva de ulike pinnene på shiftregisteret er, og deretter koble det riktig :)

 

Steg to blir å skrive kode. Forslag til pseudokode for å legge ut en byte på ett shiftregister:

 

for hvert bit som skal klokkes ut:
Hvis bit == 1:
	Sett datautgang høy
elles:
	Sett datautgang lav
sett klokkeutgang høy
sett klokkeutgang lav

 

 

okay :) men hvor finner jeg databladet? finner bare dette: http://pdf1.alldatasheet.com/datasheet-pdf/view/101613/PHILIPS/74HC164N.html som faktisk står noe om den....

Lenke til kommentar

okay :) men hvor finner jeg databladet? finner bare dette: http://pdf1.alldatas...S/74HC164N.html som faktisk står noe om den....

 

Står en stor knapp med "if you want to view datasheet, click to here !!" (litt merkelig engelsk) :) Fungerte her ihvertfall. Du må ha noe som leser pdf filer, som Adobe reader, eller (bedre imho) foxit reader.

 

Ang. kode, det ZeRKoX skriver er helt riktig, og sånn du må gjøre det etterhvert når du trenger mer hastighet. Til å begynne med kan du kikke på shiftOut.

Lenke til kommentar

Står en stor knapp med "if you want to view datasheet, click to here !!" (litt merkelig engelsk) :) Fungerte her ihvertfall. Du må ha noe som leser pdf filer, som Adobe reader, eller (bedre imho) foxit reader.

 

Ang. kode, det ZeRKoX skriver er helt riktig, og sånn du må gjøre det etterhvert når du trenger mer hastighet. Til å begynne med kan du kikke på shiftOut.

 

hehe dumme meg ja xD kom ikke opp istad når jeg søkte på google... så kom jeg rett inn på pdf filen......

 

okay :) må lære meg dette med kodene :) hehe... på led cuba mi (4x4x4) skrev jeg bare B0000,1101, osv.....

var ekko på toppen og bunnen som jeg ikke husker helt men det fant jeg bare på nette ekko plass :p

Lenke til kommentar

hei kan noen hjelpe meg med sterio volume meter kode? :) hvis jeg kobler venster inn i analod in 0 og høre inn i analog in 1

 

også går ledene ifra 0-26 :p

 

har kode til mono men vil ha sterio koder... (altså har kun til venster side)

 

her er kodene jeg har til nå...

 

 

int led[53] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26};

 

int leftChannel = 0;

int left, i;

void setup()

{

 

for (i = 0; i < 53; i++)

pinMode(led, OUTPUT);

// Serial.begin(9600);

}

 

void loop()

{

left = analogRead(leftChannel);

// Serial.println(left);

left = left / 10;

// Serial.println(left);

// left = 1500;

// left = 0;

if (left == 0)

{

for(i = 0; i < 53; i++)

{

digitalWrite(led, LOW);

}

}

 

else

{

for (i = 0; i < left; i++)

{

digitalWrite(led, HIGH);

}

 

for(i = i; i < 53; i++)

{

digitalWrite(led, LOW);

}

}

}

Lenke til kommentar

Jeg kan tipse bittelitt om den kanalen du allerede har:

 

Mulig du tenker på en senere utvidelse, men foreløpig har du kun lagret 27 (skulle det være 26?) av de 52 plassene i led[] tabellen (array). (hva resten er satt til er jeg usikker på, antagelig null? Men for-løkkene går allikevel gjennom dem og setter en eller annen ukjent pin som OUTPUT i ca siste halvdel, fra 27 - 52).

 

En annen mulighet er å ha en 2D tabell , led[kanal][pin].

 

Men ser også at alle verdiene er i rekkefølge, så du hadde ikke trengt å bruke en tabell i det hele tatt.

 

for (i = 0; i < 53; i++)
 pinMode(i, OUTPUT);

 

Rent hardware messig, håper du har tatt hensyn til AnalogReference og nivåene inn til analog inngangene.

Lenke til kommentar

Jeg kan tipse bittelitt om den kanalen du allerede har:

 

Mulig du tenker på en senere utvidelse, men foreløpig har du kun lagret 27 (skulle det være 26?) av de 52 plassene i led[] tabellen (array). (hva resten er satt til er jeg usikker på, antagelig null? Men for-løkkene går allikevel gjennom dem og setter en eller annen ukjent pin som OUTPUT i ca siste halvdel, fra 27 - 52).

 

En annen mulighet er å ha en 2D tabell , led[kanal][pin].

 

Men ser også at alle verdiene er i rekkefølge, så du hadde ikke trengt å bruke en tabell i det hele tatt.

 

for (i = 0; i < 53; i++)
 pinMode(i, OUTPUT);

 

Rent hardware messig, håper du har tatt hensyn til AnalogReference og nivåene inn til analog inngangene.

 

har funnet den på nette ;) bare forandre opp til 53 også de 0-26 (var egentlig bare 3-13)

 

okay ;) skal prøve litt i morra før jobb :)

Lenke til kommentar

Hei, som total nybegynner, så sliter jeg litt. Jeg prøver å styre en servo, og har brukt servo-eksemplet, som er følgende:

 

 


// Sweep
// by BARRAGAN <http://barraganstudio.com>
// This example code is in the public domain.

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
			// a maximum of eight servo objects can be created

int pos = 0;	// variable to store the servo position

void setup()
{
 myservo.attach(3);  // attaches the servo on pin 9 to the servo object
}


void loop()
{
 for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees
 {								  // in steps of 1 degree
myservo.write(pos);			  // tell servo to go to position in variable 'pos'
delay(15);					   // waits 15ms for the servo to reach the position
 }
 for(pos = 180; pos>=1; pos-=1)	 // goes from 180 degrees to 0 degrees
 {							  
myservo.write(pos);			  // tell servo to go to position in variable 'pos'
delay(15);					   // waits 15ms for the servo to reach the position
 }
}

 

Det er en arduino ethernet, med poe, koblet som på bildet under, men ingenting skjer når jeg laster opp sketchen, hva gjør jeg galt?

 

AtW

post-11439-0-32451300-1375429917_thumb.jpg

Endret av ATWindsor
Lenke til kommentar

Det er en arduino ethernet, med poe, koblet som på bildet under, men ingenting skjer når jeg laster opp sketchen, hva gjør jeg galt?

 

AtW

 

POE, men ingen ethernetkabel i? ;)

 

Bare så det er sagt, har aldri prøvd med POE, vet ikke hvor mye strøm den kan levere eller hvor mye servoen din må ha (og USB skal kunne klare 500mA om det er den som brukes).

 

Men generellt ville jeg vært litt forsiktig med å bruke spenningsforsyninga rett fra Arduino'en til servoer og slikt (småmotorer, releér osv - induktive laster).

Lenke til kommentar

POE, men ingen ethernetkabel i? ;)

 

Bare så det er sagt, har aldri prøvd med POE, vet ikke hvor mye strøm den kan levere eller hvor mye servoen din må ha (og USB skal kunne klare 500mA om det er den som brukes).

 

Men generellt ville jeg vært litt forsiktig med å bruke spenningsforsyninga rett fra Arduino'en til servoer og slikt (småmotorer, releér osv - induktive laster).

 

POE i seg selv kan levere masse, vet ikke hvor mye denne leverer, men det burde da uansett være mer enn nok til å drive en neste servo, og ihvertfall sånn fort testformål, først må jeg få det til å virke, og så får jeg se om jeg må ha ekstra spenning senere.

 

AtW

Lenke til kommentar

POE i seg selv kan levere masse, vet ikke hvor mye denne leverer, men det burde da uansett være mer enn nok til å drive en neste servo, og ihvertfall sånn fort testformål, først må jeg få det til å virke, og så får jeg se om jeg må ha ekstra spenning senere.

 

AtW

 

Ja, jeg ville trodd det jeg og. Og det ser jo riktig ut.

 

Reagerer servoen i det hele tatt når du kopler til spenning? Prøvd en annen Arduino utgang?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...