Arduino led vu-meter

he hallo allemaal

mijn led vu meter werkt niet!!

dit is het schema wat er bij hoort:
http://i.imgur.com/Fz4cLz1.png
en dit de code:

c code:

// Led VU Meter Example
// Version 1.0
// Written by James Newbould


int led[10] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; // Assign the pins for the leds
int leftChannel = 0;  // left channel input
int left, i;

void setup()
{
for (i = 0; i < 10; i++)  // Tell the arduino that the leds are digital outputs
  pinMode(led[i], OUTPUT);
//  Serial.begin(9600); // Uncomment to enable troubleshooting over serial.
}

void loop()
{
left = analogRead(leftChannel);  // read the left channel
// Serial.println(left);  // uncomment to check the raw input.
left = left / 50;    // adjusts the sensitivity  
//  Serial.println(left);  // uncomment to check the modified input.
// left = 1500;  // uncomment to test all leds light.
// left = 0;    // uncomment to check the leds are not lit when the input is 0.

  if (left == 0)  // if the volume is 0 then turn off all leds
   {
   for(i = 0; i < 10; i++)
     {
     digitalWrite(led[i], LOW);
     }
  }
  
  else
  {
   for (i = 0; i < left; i++) // turn on the leds up to the volume level
    {
     digitalWrite(led[i], HIGH);
    }
    
    for(i = i; i < 10; i++)  // turn off the leds above the voltage level
     {
      digitalWrite(led[i], LOW);
     }
  }
}

waar gaat het fout??.

[Bericht gewijzigd door Henry S. op donderdag 14 november 2013 18:26:45 (0%)

Arco

Special Member

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Dag Stefan,

Mij lijkt het ook dat
- De index in de for loop nooit wordt gebruikt
- De laatste for loop overbodig is

Groetjes

Ik heb deze een tijdje geleden ooit eens gemaakt en bij mij werkte het De code en ''schema'' kloppen dus.

Wat werkt er precies niet? En wat gebeurt er wel?

Een complete arduino gebruiken voor iets dat een analoog chipje van een euro ook kan, lijkt me de eerste fout.

Aangezien het desondanks wel zou moeten werken blijft inderdaad de vraag: wat doettie precies? En hoe heb je alles aangesloten?

Het zou om dit ontwerp moeten gaan zo te zien.

[Bericht gewijzigd door maartenbakker op donderdag 14 november 2013 17:36:14 (26%)

www.elba-elektro.nl | "The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."

ALs je hem aan zet niks totdat je telefoon aansluit op de 3,5 mm jack, dan gaat het ledje op de arduino zelf heel snel knipper en moet je hem resetten en dat best wel moeilijk, want je moet een andere code er in stoppen en de andere code via het knopje verwijder.

[Bericht gewijzigd door Henry S. op donderdag 14 november 2013 18:25:57 (40%)

Ik weet niet waar je het schema vandaan hebt dat je gebruikt, maar het oorspronkelijke schema staat in de link die ik boven achteraf heb toegevoegd. Daar ziet de er toch wat anders uit.

Wat sluit je er precies op aan en hoe? De headsetuitgang van een telefoon?

www.elba-elektro.nl | "The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."

Op 14 november 2013 17:15:05 schreef YokoTsuno:
Dag Stefan,

Mij lijkt het ook dat
- De index in de for loop nooit wordt gebruikt
- De laatste for loop overbodig is

Groetjes

dus jij zo de code zo hebben gedaan:

c code:

// Led VU Meter Example
// Version 1.0
// Written by James Newbould


int led[10] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; // Assign the pins for the leds
int leftChannel = 0; // left channel input
int left, i;



void loop()
{
left = analogRead(leftChannel); // read the left channel
// Serial.println(left); // uncomment to check the raw input.
left = left / 50; // adjusts the sensitivity 
// Serial.println(left); // uncomment to check the modified input.
// left = 1500; // uncomment to test all leds light.
// left = 0; // uncomment to check the leds are not lit when the input is 0.

if (left == 0) // if the volume is 0 then turn off all leds
{
for(i = 0; i < 10; i++)
{
digitalWrite(led, LOW);
}
}

else
{

}
}
}

[Bericht gewijzigd door Henry S. op donderdag 14 november 2013 18:27:11 (1%)

Op 14 november 2013 17:40:40 schreef stefan787: dus jij zo de code zo hebben gedaan:

De code in de link van Maarten lijkt op het eerste zicht meer realistisch. De loopindexen worden daar tenminste gebruikt binnen de lus, wat bij jou niet het geval is.

Groetjes

Ik weet niet waar je het schema vandaan hebt dat je gebruikt, maar het oorspronkelijke schema staat in de link die ik boven achteraf heb toegevoegd. Daar ziet de er toch wat anders uit.

als je goed kijkt alle minnen aan GND en alle plussen aan een eigen output. en de GND van de 3,5mm jack aan een GND op het bord en links op analoog 0.
3,5mm jack:
http://i.imgur.com/CYMOhMx.jpg
http://i.imgur.com/QNV031R.jpg
is misschien moeilijk te zien maar klopt dit ook?

Wat sluit je er precies op aan en hoe? De headsetuitgang van een telefoon?

ja de 3.5 mm output op je telefoon

alleen als je de code in laad gaat het ledje op de arduino al heel snel knipperen

[Bericht gewijzigd door Henry S. op donderdag 14 november 2013 19:51:33 (6%)

De code (beginpost) lijkt mij wel te kloppen, spanning van ingangsignaal moet dan wel tussen 0 en 2,5v liggen (0-512 bij 10 bit adc en die deling door 50)

Den Dries www.hulens.be

Ledjes snel knipperen, welke? Ik heb er namelijk 3 op zitten.
Tijdens het in laden van software moeten de RX en TX LEDs aan gaan/snel knipperen. Daarna reset hij zichzelf en gaat L 3x knipperen voor het programma start.

Reseten op een arduino is niet veel moeilijker als de reset knop indrukken...

Wat betreft de foto, je lijkt het linker en rechter kanaal te gebruiken en geen ground. De ground van de jack is namelijk de grote "tab" met de klemmetjes aan de bovenkant. Sluit die op de GND aan en een van de andere op je analoge kanaal.

Ik weet niet of dat bij Arduino (C++ CMIIW?) nodig is, maar bij de deling kun je eventueel extra casten naar een INT.

c code:


left = (int)(left / 50);
LED addicted... Fijnmalen en snuiven maar!! :P

Op 14 november 2013 19:24:54 schreef Nieko:
Ledjes snel knipperen, welke? Ik heb er namelijk 3 op zitten.

het gaat om ledjes L

Wat betreft de foto, je lijkt het linker en rechter kanaal te gebruiken en geen ground. De ground van de jack is namelijk de grote "tab" met de klemmetjes aan de bovenkant. Sluit die op de GND aan en een van de andere op je analoge kanaal.

ground is het zwarte draadje, en rood rechts en geel links denk ik.

dus je moet het zo aan sluiten:
http://i.imgur.com/nEE4gMj.png

[Bericht gewijzigd door Henry S. op donderdag 14 november 2013 19:52:18 (53%)

Die hoort na het opstarten 3x snel te knipperen (binnen +/- 1 seconden). Daarna moet hij uit gaan omdat je hem verder niet gebruikt in je programma (zit aangesloten op Pin 13).
Als hij aan blijft dan kan het mogelijk zo zijn dat je bootloader stuk is. Dat betekend dat je er ook nooit software in kunt krijgen (error vanuit de PC software).

Overigens, nog een kleine opmerking. In de code staat het voldende:

c code:


int led[10] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; // Assign the pins for the leds

Als je het bovenstaande schema hebt, pas het dan even aan van 1 t/m 10. Anders krijg je een verschoven VU meter als hij ineens wel werkt.

//EDIT,,
Wat betreft je schema, dat klopt dan gewoon. Ik had de zwarte kabel over het hoofd gezien omdat het foto's zijn van zwakke kwaliteit.

LED addicted... Fijnmalen en snuiven maar!! :P

ik wet niet wat er mijn bootloader aan de hand is maar die is niet meer 100% denk ik , moet de usb er uit halen en dan er weer in doen en dan snel alles uploaden, anders gaat het lampje L uit zich zelf knipperen

ja is erg moeilijk te zien die zwarte kabel

[Bericht gewijzigd door Henry S. op donderdag 14 november 2013 19:52:38 (64%)

Ik heb hem even snel opgebouwd.
Op het moment dat ik hem laat draaien zonder dat ik mijn telefoon (audio bron) heb aangesloten flitsen alle LEDs onregelmatig (inclusief L vreemd genoeg).
Wanneer ik mijn telefoon aansluit werkt hij prima, alleen is het erg ongevoelig. Door de deling van 50 naar een lager getal te veranderen kun je eenvoudig de VU meter "tweaken" voor jou audio bron.

Om je Arduino even goed te resetten kun je het volgende proberen:
- Trek de USB kabel uit de Arduino
- Sluit de PC software van Arduino af
- Sluit na een seconde of 15 wachten de Arduino weer aan
- Start de PC software weer op
- Druk een keer op de reset knop en kijk of het LEDje met L er bij 3x snel knippert, zo ja, dan is hij succesvol gereset en hoort hij goed te functioneren

Belangrijk voor het uploaden van de code (de PC software geeft in dat geval een duidelijke upload error):
Zorg er voor dat er geen constant +5V of GND signaal op pin 0 en 1 staan (RX en TX). Dit zijn namelijk tevens de programmeer pinnen van de Arduino.

LED addicted... Fijnmalen en snuiven maar!! :P

dus er gaat gewoon wat fout bij mij??

maar ik vind me arduino ook een beetje raar doen

[Bericht gewijzigd door Henry S. op donderdag 14 november 2013 19:52:55 (88%)

Henry S.

Moderator

Er gaat vanalles fout... Je zit op een forum, niet in een chatroom of op Skype/whatever.

Gebruik bij toevoegingen aan je post de edit http://www.circuitsonline.net/images/icons/edit_message.png, en quote niet alles wat een cm daarboven te lezen is. Zie http://www.circuitsonline.net/forum/faq

Ben je dit vergeten?

[Bericht gewijzigd door Henry S. op donderdag 14 november 2013 19:55:58 (14%)

Deze post is niet door ChatGPT gegenereerd. De 2019 CO labvoeding.

Op 14 november 2013 19:48:44 schreef Nieko:
Ik heb hem even snel opgebouwd.
Op het moment dat ik hem laat draaien zonder dat ik mijn telefoon (audio bron) heb aangesloten flitsen alle LEDs onregelmatig (inclusief L vreemd genoeg).
Wanneer ik mijn telefoon aansluit werkt hij prima, alleen is het erg ongevoelig. Door de deling van 50 naar een lager getal te veranderen kun je eenvoudig de VU meter "tweaken" voor jou audio bron.

Om je Arduino even goed te resetten kun je het volgende proberen:
- Trek de USB kabel uit de Arduino
- Sluit de PC software van Arduino af
- Sluit na een seconde of 15 wachten de Arduino weer aan
- Start de PC software weer op

Belangrijk voor het uploaden van de code (de PC software geeft in dat geval een duidelijke upload error):
Zorg er voor dat er geen constant +5V of GND signaal op pin 0 en 1 staan (RX en TX). Dit zijn namelijk tevens de programmeer pinnen van de Arduino.

ja dat werkt zeker wel heel erg handig, maar waar heb je die code van daan gehaald??

Op 14 november 2013 19:54:32 schreef Henry S.:
Er gaat vanalles fout... Je zit op een forum, niet in een chatroom of op Skype/whatever.

Gebruik bij toevoegingen aan je post de edit [afbeelding], en quote niet alles wat een cm daarboven te lezen is. Zie http://www.circuitsonline.net/forum/faq

Ben je dit vergeten?

Ja sorry, zal er op letten.

[Bericht gewijzigd door Henry S. op donderdag 14 november 2013 20:15:05 (21%)

Maar nu weten we nog niet of hij goed werkt. Kun je misschien een filmpje uploaden? Dan moet het zo duidelijk zijn.

LED addicted... Fijnmalen en snuiven maar!! :P

Ik ga hem nu even opnieuw opbouwen misschien werkt dat

[Bericht gewijzigd door Henry S. op donderdag 14 november 2013 20:15:20 (67%)

Henry S.

Moderator

Op 14 november 2013 19:56:00 schreef stefan787:
Ja sorry, zal er op letten.

Doe er dan ook wat aan, want nu ga je gewoon op de oude voet verder...

Deze post is niet door ChatGPT gegenereerd. De 2019 CO labvoeding.

als ik die code upload dan gaat de L heel snel knipperen en kan je geen aanpassingen door voeren allen als je hem helemaal reset.
de error die je krijgt als je dan wat wild veranderen:

avrdude: stk500_getsync(): not in sync: resp=0x00

[Bericht gewijzigd door stefan787 op donderdag 14 november 2013 20:20:19 (32%)

Wat je kunt proberen:
- Koppel alle inputs en outputs los
- Volg de reset procedure op in een van mijn vorige posts
- Probeer het programma er in te laden, zonder dat er maar iets op de IO pinnen zit

Als dat niet werkt dan is inderdaad je bootloader beschadigd (kan gebeuren als je tijdens het programmeren de USB stekker er uit trekt, althans dat heb ik gehoord).

Om je Arduino nieuw leven in te blazen kun je een ICSP AVR programmer kopen. Die kun je via de ICSP pins met de Arduino verbinden. Dan kun je geloof ik de software via de Arduino software er in laden (Extra -> Bootloader).
Ik heb hier geen ervaring mee, maar een snel stukje google heb ik dit er van kunnen maken. Ik heb zelf 2 ICSP headers op het bordje zitten. Ik heb alleen geen idee of je de "programmeer AVR" van het Arduino bordje kunt gebruiken om via ICSP de bootloader van de "gebruikers AVR" opnieuw er op te zetten.

Ik herhaal even dat ik hier wazig even snel wat onderzoek naar heb gedaan en er zelf geen ervaring mee heb. Dus ik kan je niet alle ins en outs geven over deze procedure. De mensen op het Arduino forum of Google kan dat ongetwijfeld wel.

[Bericht gewijzigd door Nieko op donderdag 14 november 2013 20:44:03 (12%)

LED addicted... Fijnmalen en snuiven maar!! :P

Je kan toch ook zoon bootloader er op solderen.

[Bericht gewijzigd door Henry S. op donderdag 14 november 2013 21:58:57 (93%)