INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Neuling mit Progammierungslücken
19.02.2019, 18:34
Beitrag #25
RE: Neuling mit Progammierungslücken
So, habe mal was eingetippt.
Code:
/*
LED VU meter for Arduino and Adafruit NeoPixel LEDs.
Hardware requirements:
- Most Arduino or Arduino-compatible boards (ATmega 328P or better).
- Adafruit Electret Microphone Amplifier (ID: 1063)
- Adafruit Flora RGB Smart Pixels (ID: 1260)
   OR
- Adafruit NeoPixel Digital LED strip (ID: 1138)
- Optional: battery for portable use (else power through USB or adapter)
Software requirements:
- Adafruit NeoPixel library
Connections:
- 3.3V to mic amp +
- GND to mic amp -
- Analog pin to microphone output (configurable below)
- Digital pin to LED data input (configurable below)
See notes in setup() regarding 5V vs. 3.3V boards - there may be an
extra connection to make and one line of code to enable or disable.
Written by Adafruit Industries.  Distributed under the BSD license.
This paragraph must be included in any redistribution.
*/

#include <Adafruit_NeoPixel.h>

#define N_PIXELS  60  // Number of pixels in strand
#define MIC_PIN   A0  // Microphone is attached to this analog pin
#define LED_PIN    6  // NeoPixel LED strand is connected to this pin
#define DC_OFFSET  0  // DC offset in mic signal - if unusure, leave 0
#define NOISE     10  // Noise/hum/interference in mic signal
#define SAMPLES   60  // Length of buffer for dynamic level adjustment
#define TOP       (N_PIXELS + 2) // Allow dot to go slightly off scale
#define PEAK_FALL 40  // Rate of peak falling dot

byte
  peak      = 0,      // Used for falling dot
  dotCount  = 0,      // Frame counter for delaying dot-falling speed
  volCount  = 0;      // Frame counter for storing past volume data
int
  vol[SAMPLES],       // Collection of prior volume samples
  lvl       = 10,      // Current "dampened" audio level
  minLvlAvg = 0,      // For dynamic adjustment of graph low & high
  maxLvlAvg = 512;
Adafruit_NeoPixel
  strip = Adafruit_NeoPixel(N_PIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {

  // This is only needed on 5V Arduinos (Uno, Leonardo, etc.).
  // Connect 3.3V to mic AND TO AREF ON ARDUINO and enable this
  // line.  Audio samples are 'cleaner' at 3.3V.
  // COMMENT OUT THIS LINE FOR 3.3V ARDUINOS (FLORA, ETC.):
//  analogReference(EXTERNAL);

  memset(vol, 0, sizeof(vol));
  strip.begin();
}

void loop() {
  uint8_t  i;
  uint16_t minLvl, maxLvl;
  int      n, height;
  int minValue = 102 ;  // Min. Analogeingangswert
  int maxValue = 963 ;  // Maximaler analoger Eingangswert (0-1023 entspricht 0-5V)
  int sensitiveValue = 128 ;  // 0 - 255, Anfangswert (Wert, der vom Potentiometer gelesen wird, wenn useSensorValues ​​= true ist)
  int maxSensitivity = 255 ;  // lass die 'Lautstärke' auf 200% steigen!
  int ledBrightness = 30 ;  // 0 - 255, Anfangswert (Wert, der vom Potentiometer gelesen wird, wenn useSensorValues ​​= true ist)
  int sensorDeviationBrightness = 1 ;  // Schwankende Werte beseitigen
  int overflowDelay = 20 ;  //


  n   = analogRead(MIC_PIN);                        // Raw reading from mic
  n   = abs(n - 512 - DC_OFFSET); // Center on zero
  n   = (n <= NOISE) ? 0 : (n - NOISE);             // Remove noise/hum
  lvl = ((lvl * 7) + n) >> 3;    // "Dampened" reading (else looks twitchy)

  // Calculate bar height based on dynamic min/max levels (fixed point):
  height = TOP * (lvl - minLvlAvg) / (long)(maxLvlAvg - minLvlAvg);

  if(height < 0L)       height = 0;      // Clip output
  else if(height > TOP) height = TOP;
  if(height > peak)     peak   = height; // Keep 'peak' dot at top


  // Color pixels based on rainbow gradient
  for(i=0; i<N_PIXELS; i++) {
    if(i >= height)               strip.setPixelColor(i,0,0,0);
    else {strip.setPixelColor(0,0,0,250);
  strip.setPixelColor(1,0,0,250);
  strip.setPixelColor(2,0,0,250);
  strip.setPixelColor(3,0,0,250);
  strip.setPixelColor(4,0,0,250);
  strip.setPixelColor(5,0,0,250);
  strip.setPixelColor(6,0,0,250);
  strip.setPixelColor(7,0,0,250);
  strip.setPixelColor(8,0,0,250);
  strip.setPixelColor(9,0,0,250);
  strip.setPixelColor(10,0,0,250);
  strip.setPixelColor(11,0,250,0);
  strip.setPixelColor(12,0,0,250);
  strip.setPixelColor(13,0,0,250);
  strip.setPixelColor(14,0,0,250);
  strip.setPixelColor(15,0,0,250);
  strip.setPixelColor(16,0,0,250);
  strip.setPixelColor(17,0,0,250);
  strip.setPixelColor(18,0,0,250);
  strip.setPixelColor(19,0,0,250);
  strip.setPixelColor(20,0,0,250);
  strip.setPixelColor(21,0,0,250);
  strip.setPixelColor(22,0,0,250);
  strip.setPixelColor(23,0,250,0);
  strip.setPixelColor(24,0,0,250);
  strip.setPixelColor(25,0,0,250);
  strip.setPixelColor(26,0,0,250);
  strip.setPixelColor(27,0,0,250);
  strip.setPixelColor(28,0,0,250);
  strip.setPixelColor(29,0,0,250);
  strip.setPixelColor(30,0,0,250);
  strip.setPixelColor(31,0,0,250);
  strip.setPixelColor(32,0,0,250);
  strip.setPixelColor(33,0,0,250);
  strip.setPixelColor(34,0,0,250);
  strip.setPixelColor(35,0,250,0);
  strip.setPixelColor(36,0,0,250);
  strip.setPixelColor(37,0,0,250);
  strip.setPixelColor(38,0,0,250);
  strip.setPixelColor(39,0,0,250);
  strip.setPixelColor(40,0,0,250);
  strip.setPixelColor(41,0,0,250);
  strip.setPixelColor(42,0,0,250);
  strip.setPixelColor(43,0,0,250);
  strip.setPixelColor(44,0,0,250);
  strip.setPixelColor(45,0,0,250);
  strip.setPixelColor(46,0,0,250);
  strip.setPixelColor(47,0,250,0);
  strip.setPixelColor(48,0,0,250);
  strip.setPixelColor(49,0,0,250);
  strip.setPixelColor(50,0,0,250);
  strip.setPixelColor(51,0,0,250);
  strip.setPixelColor(52,0,0,250);
  strip.setPixelColor(53,0,0,250);
  strip.setPixelColor(54,0,0,250);
  strip.setPixelColor(55,0,0,250);
  strip.setPixelColor(56,0,0,250);
  strip.setPixelColor(57,0,0,250);
  strip.setPixelColor(58,0,0,250);
  strip.setPixelColor(59,0,250,0);}
  }



  // Draw peak dot  
  if(peak > 0 && peak <= N_PIXELS-1) strip.setPixelColor(peak,Wheel(map(peak,0,strip.numPixels()-1,0,255)));
  
   strip.show(); // Update strip

// Every few frames, make the peak pixel drop by 1:

    if(++dotCount >= PEAK_FALL) { //fall rate
      
      if(peak > 0) peak--;
      dotCount = 0;
    }



  vol[volCount] = n;                      // Save sample for dynamic leveling
  if(++volCount >= SAMPLES) volCount = 0; // Advance/rollover sample counter

  // Get volume range of prior frames
  minLvl = maxLvl = vol[0];
  for(i=1; i<SAMPLES; i++) {
    if(vol[i] < minLvl)      minLvl = vol[i];
    else if(vol[i] > maxLvl) maxLvl = vol[i];
  }
  // minLvl and maxLvl indicate the volume range over prior frames, used
  // for vertically scaling the output graph (so it looks interesting
  // regardless of volume level).  If they're too close together though
  // (e.g. at very low volume levels) the graph becomes super coarse
  // and 'jumpy'...so keep some minimum distance between them (this
  // also lets the graph go to zero when no sound is playing):
  if((maxLvl - minLvl) < TOP) maxLvl = minLvl + TOP;
  minLvlAvg = (minLvlAvg * 63 + minLvl) >> 6; // Dampen min/max levels
  maxLvlAvg = (maxLvlAvg * 63 + maxLvl) >> 6; // (fake rolling average)

}

// Input a value 0 to 255 to get a color value.
// The colors are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  if(WheelPos < 85) {
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  } else if(WheelPos < 170) {
   WheelPos -= 85;
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else {
   WheelPos -= 170;
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}
Soweit, so gut. Es läuft zwar, kann es aber nicht Testen, da mir noch der Sensor fehlt und ich kein regelbares Netzteil habe.
Bei 3,3 V geht die Anzeige bis ca. die Mitte, mehr kann ich erstmal nicht Testen.
Werde erstmal abwarten und es dann mit dem Sensor testen.
Falls Ihr noch einen, einige Fehler gesehen habt, wäre ich Euch Dankbar, mir die zusagen.
MfG Ben2019
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.02.2019, 18:49
Beitrag #26
RE: Neuling mit Progammierungslücken
Ohne mir jetzt den ganzen Code anzuschauen, ein paar Blicke in die Kinderbücher hätten Deinem Code gut getan. Hint: modulo

Du wolltest doch jede 10. LED andersfarbig darsrtellen warum machst Du das dann bei 11, 23, ...?

Du machst 60 mal folgendes:
Code:
Wenn i >= height setze die LED auf schwarz
Ansonsten setze [color=#FF0000][u][b]alle 60 LED[/b][/u][/color] einzeln auf eine Farbe / die 11., 23., ... auf eine andere

Du solltest Deine Abneigung vor Kinderbüchern ablegen und erst mal die Grundlagen der Programmierung lernen und mehr Sorgfalt in die Formatierung investieren.

Der Code ist, so wie er ist: Schrott.

Sorry, sonst bin ich bei Anfängern in der Bewertung nicht so hart. Deine Arroganz hat aber nichts anderes verdient.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2019, 19:06
Beitrag #27
RE: Neuling mit Progammierungslücken
Hallo Zusammen
Werde mich zum Letzten mal melden, denn dieses Forum ist nicht das, was ich gedacht habe.
Rückblick: Ich wollte hier Hilfe bekommen, jedoch habe ich nur Häme und Spott bekommen. Ich, keine Ahnung vom Programmieren, habe mir die Fiebel mehrfach durchgelesen und nicht alles verstanden, deshalb habe ich gefragt und zur Antwort bekommen "ich sollte erstmal meine "Hausaufgaben" machen".
Habe mich mal durch Eure "Projekte" durchgelesen und musste feststellen, daß Ihr alles Komplizierter macht als nötig.
z.B.: da möchte einer eine "Pumpensteuereung für Warmwasser Ringleitung" bauen, da brauche ich KEINEN Arduino, da brauche ich NUR eine "Temperatursteuerung" mit Hysterese, die kostet 2,00-3,00 € aus China, muss nicht Programmieren, fertig.
Als zweites: PID PWM geregelte Lüftersteuerung mit Dallas 18B20: , was ist Dallas 18B20?, da reicht eine "Temperatursteuerung mit einem PWM Ausgang", fertig.
Drittens: Arduino für Solar-Laderegler , wer braucht so etwas? Entweder Solarmodul aufs Dach und Strom speichern oder nicht.
Ich möchte Eure Kompetenz, in Sachen Arduino, nicht Herabschätzent bewerten, jedoch macht Ihr vieles Komplizierter als Notwendig, da gibt es einfachere und bessere Möglichkeiten.
Ich habe mir den Arduino NUR angeschafft, damit ich nicht 60 Kabel, zu den LED`s "ziehen" muss, da ich dafür nicht genug Platz habe.
MfG Ben2019
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2019, 19:18
Beitrag #28
RE: Neuling mit Progammierungslücken
Um Deinem Gedächtnisverlust etwas auf die Sprünge zu helfen: Das war Deine Antwort auf die Arduino-Referenz in Deutsch!

(10.02.2019 16:49)Ben2019 schrieb:  Dieter, nicht böse sein, daß, was du mir zu lesen gegeben hast, wirklich nicht böse sein!!, daß ist Kinderkram, dazu brauche ich keinen Arduino. Da bin ich mit ein paar IC`s und ein wenig Kleinkram schneller und muss nicht Progammieren.
Bis dahin hast Du ganz normale Hilfe bekommen.

An dieser arroganten Aussage, die Du nie revidiert hast, wurdest Du seitdem gemessen. Auch da hast Du noch Hilfe bekommen, aber eben mit dem Hinweis auf Deine Aussage zum Kinderkram.

Auch die Aussagen in Deinem letzten Posting zu anderen Beiträgen triefen nur so von Arroganz, z.B.:
(20.02.2019 19:06)Ben2019 schrieb:  Habe mich mal durch Eure "Projekte" durchgelesen und musste feststellen, daß Ihr alles Komplizierter macht als nötig.
z.B.: da möchte einer eine "Pumpensteuereung für Warmwasser Ringleitung" bauen, da brauche ich KEINEN Arduino, da brauche ich NUR eine "Temperatursteuerung" mit Hysterese, die kostet 2,00-3,00 € aus China, muss nicht Programmieren, fertig.

Falls Du es noch nicht gemerkt haben solltest - hier ist das Arduino-Forum. Also ist der Inhalt des Forums die Lösung von Problemen mit dem Arduino.

Ich glaube, es ist kein Verlust für uns, wenn Du weg bleibst.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2019, 19:40 (Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2019 19:47 von hotsystems.)
Beitrag #29
RE: Neuling mit Progammierungslücken
(20.02.2019 19:18)Tommy56 schrieb:  Ich glaube, es ist kein Verlust für uns, wenn Du weg bleibst.

Das bleibt er sicher auch, da er ja, wie er schreibt, alles besser und billiger baut und alles ohne Controller.

Wenn er die zitierten Beiträge richtig lesen würde (da hat er offensichtlich ein Problem) dann müsste er verstehen, warum dazu ein Controller eingesetzt wird.
Aus meiner Sicht ist es nur Neid, da er es selbst nicht mit einem Controller hinbekommt.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.02.2019, 15:15 (Dieser Beitrag wurde zuletzt bearbeitet: 22.02.2019 15:16 von Hilgi.)
Beitrag #30
RE: Neuling mit Progammierungslücken
Ich glaube echt, er versteht nicht, dass es rein darum ging/geht -> WIE er sich dargestellt hat....

Schade, ich denke eigentlich ist hier jeder herzlich willkommen und gewünscht, egal welches Level!!!!

Ich hoffe dieser Thread dient allen hier und Außen als Beispiel und wir schaffen das wenigstens hier im Forum, eben anders zu sein, als da draußen, hier braucht keiner protzen und sich überhöhen, um Respekt und Anerkennung zu bekommen.

Es gibt hier viele Threads, wo blutige Anfänger sich wurschteln und am Ende Lob bekommen, weil sie über sich hinaus gewachsen sind, es ist also offensichtlich das es keine Rolle spielt wie gut man ist, sondern nur wie Teamfähig!


In diesem Sinne 1 + 1 != 2


Gruß
Hilgi

Nicht denken,...
...nachdenken... Rolleyes

Smarter - LiveData
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Sad Neuling verzweifelt braucht Hilfe delay durch timer ersetzen Lois 1 598 06.02.2019 16:15
Letzter Beitrag: Tommy56
  Neuling sucht Hilfe HeikeF 6 632 16.01.2019 10:07
Letzter Beitrag: hotsystems
  Neuling kommt nicht weiter, ws2812 If abfragen Tabata 8 1.855 19.04.2018 14:07
Letzter Beitrag: Tommy56
  Neuling mit einen Projekt MrNiceGuy 39 5.317 04.02.2018 20:50
Letzter Beitrag: MrNiceGuy
  Neuling sucht Beratung für ein RFID Motorschloss MaikGyver 34 7.508 07.01.2018 21:24
Letzter Beitrag: Tommy56
  Neuling Fehler beim Kompilieren guenni71 6 3.503 26.11.2017 16:48
Letzter Beitrag: hotsystems
  Neuling Projekt Zähler Feuersturm84 2 860 16.11.2017 19:50
Letzter Beitrag: Chopp
Smile Progammier Neuling Codeschloss bittet um Hilfe Donalonso 2 1.182 27.08.2016 18:23
Letzter Beitrag: Binatone
Wink Bin Neuling Guekard 62 9.726 12.06.2016 19:01
Letzter Beitrag: hotsystems
  Neuling PWM Programmierung Gerald_Z 6 5.496 21.02.2016 22:23
Letzter Beitrag: reiner_liebold

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste