Show Posts
Pages: 1 ... 68 69 [70] 71 72 ... 191
1036  International / Deutsch / Re: WSS2812 blinkt - kein Dauerlicht einstellbar? on: December 06, 2013, 06:13:27 am
wenn ich eine WS2812 LED schnell hin und her schwenke, sehe ich durch die Trägheit des Auges, dass die LED kein Dauerlicht abgibt, sonder mit ca. 500Hz ein- und ausgeschaltet wird.
Das ist auch nicht von der Ansteuerung über FastSPI abhängig, denn wenn ich das DATA Signal wegnehme, blink die LED immer noch.
Ist das normal ?

Jede einzelne WS2811/WS2812 LED hat einen eigenen Controller, der die LED per PWM ansteuert. Der RGB-Wert wird einmal an die LED gesendet, danach steuert sie die Helligkeit per PWM selbst mit dem eigenen Controller. Dauerlicht solltest Du haben, wenn Du die LED voll mit RGB(255,255,255) ansteuerst. Bei heruntergedimmten LEDs ist natürlich immer die PWM-Steuerung des in der LED eingebauten Controllers aktiv (keine Ahnung, mit welcher Frequenz).
1037  International / Deutsch / Re: Sensirion SDP 610 Sensor an Arduino uno anschließen ! Hilfe!!!!! on: December 06, 2013, 06:07:49 am
DATA-A4
Clock - A5
GND- GND
VND-3,3V

OK.

Und auf welche Widerstandswerte hast Du jetzt Deine Potis eingestellt, die Du da als Notbehelf mangels geeigneter PullUp-Festwiderstände eingelötet hast?

Im Zweifelsfall nochmal je einen Draht an den Potis ablöten und im Ohm-Messbereich den Widerstand ausmessen. Der PullUp-Widerstand sollte bei je zwischen ca. 3300 und 4700 Ohm liegen (3.3K bzw. 3K3 bis 4.7K bzw. 4K7). Hast Du das überprüft, dass die Potis so eingestellt sind und danach auch nicht verstellt werden?

Irgendwie ist da der Hund vergraben. Der Scanner läuft und läuft. Dürfte doch keine 10 Minuten dauern oder?

Nö, der Scanner zeigt die Adresse nach wenigen Sekunden.
Wenn Du nach 10 Sekunden keine Anzeige hast, kannst Du aufhören zu scannen.
1038  International / Deutsch / Re: Verständnisfrage zu Freadunio mit Garan Audio Modul on: December 06, 2013, 05:35:46 am
Soweit so gut.. aber wie zum Geier kriege ich es hin, dass die zwei Pins welche ich  für RX/TX verwenden will 3.3V haben, jedoch das Audio Modul mit 5V gespiesen wird?

Das Datenblatt lesen! In Abschnitt "10 Attentions" steht im Datenblatt doch alles drin, wie ein 5V Mikrocontroller mit dem Modul betrieben werden soll!

Falls das irgendwie unklar für Dich ist, hier mal die Kurzform:
Du kannst Deinen Mikrocontroller auf 5V laufen lassen und am Audio-Modul betreiben.
Du mußt dann aber unbedingt zwischen Audio-Modul-RX und Arduino-TX einen 1K Widerstand dazwischenschalten.
Audio-Modul-TX und Arduino-RX werden direkt verbunden.

Der 1K Widerstand auf der Leitung, mit der der Arduino sendet, sorgt für einen Spannungsabfall, so dass weniger als 5 V am Audiomodul ankommen. Und wenn das Modul selbst nur mit 3.3 V an den Arduino sendet, sollte der Arduino diesen Pegel trotzdem als HIGH auswerten können, so dass die serielle Verbindung dann funktioniert.
1039  International / Deutsch / Re: Problem bei GPS Shield on: December 06, 2013, 05:05:13 am
So ... soweit läuft jetzt alles gut ... nur stehe ich jetzt vor einem neuen Problem ... wenn ich versuche die Daten auf eine SD Karte zu loggen ... Ich denke mal das liegt am AltSoftSerial ... wenn die die Bibliothek SD:h einbinde loopt sich das Setup permanent ... wenn ich dann AltSoftSerial.h auskommentiere läuft es ... nur dann halt ohne gps daten -.-

Sowohl die SD-Library als auch TinyGPS sind echte RAM-Speicherfresser-Libraries.
Und ein UNO hat aber nur 2048 Bytes RAM "für alles".

Auch die AltSoftSerial-Library braucht RAM-Speicher, denn die legt genau so einen Serial-Lesepuffer von 64 Bytes und einen Serial-Schreibpuffer von 64 Bytes an wie es die HardwareSerial auch macht.

Um mit TinyGPS und der SD-Library Daten auf SD zu loggen, wirst Du extrem speichersparend programmieren müssen und darfst nicht zu viele Bytes an RAM-Speicher extra verschwenden. Das ständige Resetten des Controllers im laufenden Betrieb kann darauf hindeuten, dass Dein Sketch zum einwandfreien Ablauf mehr RAM-Speicher benötigt als ein UNO eingebaut hat.

Ich würde ggf. mal diese Funktion ins Programm schreiben:
Code:
int freeRam () {
  extern int __heap_start, *__brkval;
  int v;
  return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
Und dann irgendwo im laufenden Programm mit "Serial.println(freeRam());" die Zahl der noch freien Bytes im RAM-Speicher ausgeben lassen.

Im Prinzip mußt Du, wenn es denn gar nicht reicht, auf eine der beiden Serial-Libraries verzichten, also entweder die HardwareSerial ("Serial") oder AltSoftSerial. Denn Du müßtest für einen Logger ja nur die Daten wegspeichern, aber nicht unbedingt zusätzlich noch auf dem Seriellen Monitor ausgeben.
1040  International / Deutsch / Re: Sensirion SDP 610 Sensor an Arduino uno anschließen ! Hilfe!!!!! on: December 06, 2013, 04:34:37 am
Zwischen GND und A4 liegt 0,6V an
Zwischen GND und A5 liegt ebenso 0,6V an.
Die Kabel am Arduino habe ich doch richtig angeschlossen oder?

Die Spannungen stimmen vorne und hinten nicht.
Und der Anschluss ist offensichtlich falsch.

Als Pin Assignment im Sensor-Datenblatt sehe ich die Reihenfolge:
Data - GND - VDD - Clock

D.h, die Clock-Leitung (SCL/A5 am Arduino Uno) liegt als Anschluss direkt neben VDD außen.
Auf Deinem Bild ist VDD als rote Leitung direkt neben der grünen Leitung angeschlossen, die zum Arduino an A4 (SDA) führt.

Da müßtest Du mal dringend die Anschlüsse überprüfen:
Entweder hast Du am Sensor GND und VDD verwechselt, die Betriebsspannung falsch herum gepolt und dann sind Data (SDA) und Clock (SCL) richtig angeschlossen.

Oder Du hast GND und VDD richtig gepolt am Sensor angeschlossen, dann sind Data (SDA) und Clock (SCL) genau vertauscht angeschlossen.

Bei korrekten Anschluß solltest Du folgende Spannungen messen können:

Bei Verwendung externer PullUp-Widerstände sollte die Spannung zwischen GND-SDA und GND-SCL: zwischen 3.3 und 3.6 Volt betragen.

1041  International / Deutsch / Re: Sensirion SDP 610 Sensor an Arduino uno anschließen ! Hilfe!!!!! on: December 06, 2013, 02:31:31 am
Ich verwende einen Arduino uno R3. Habe jetzt mal ein Foto beigefügt wie ich Ihn angeklemmt habe.

Wo sind denn da in Deiner Schaltung die externen PullUp-Widerstände für den I2C-Bus zu finden?

Kommt der Sensor schon vorbeschaltet mit einer zusätzlichen kleinen Breakout-Platine, auf der eigene PullUp-Widerstände verbaut sind? Das Datenblatt des Sensors sagt davon nichts, sondern beschreibt nur die Beschaltung mit externen PullUp-Widerständen.

Oder hast Du die externen PullUp-Widerstände für den I2C-Bus einfach weggelassen?

Wenn Du ein Multimeter hast, miss mal in einem Volt-Messbereich die Spannung zwischen GND und A4 bzw. GND und A5, wieviel Volt zeigt es an, und zwar während der Scan-Sketch läuft?
1042  International / Deutsch / Re: Sensirion SDP 610 Sensor an Arduino uno anschließen ! Hilfe!!!!! on: December 06, 2013, 02:01:55 am
Kann mir jemand helfen ich bin echt am Rande der Verzweiflung.

Falls Sie in einer akuten Krise sind und eine Gefahr für sich oder andere Menschen darstellen, wenden Sie sich bitte an die Telefonseelsorge (kostenfreie Rufnummern: 0800 - 111 0 111 und 0800 - 111 0 222) oder direkt an die Polizei (Telefon: 110).
1043  International / Deutsch / Re: DCf77 compiler "meckereien" on: December 05, 2013, 03:24:36 pm
Hat jemand von Euch den hauch einer Ahnung, was da schief läuft?
nehme ich die DCF77.h  und Time.h wieder raus, läuft der rest des Sketches problemlos. 

 Irgendwas mag mein Ardu mit den Libraries nicht :-(

Es sieht für mich so aus, als wenn Dir der Compiler sagen möchte, dass Du nur Konstanten in den PROGMEM verschieben kannst und das auch entsprechend im Quelltext stehen soll, also etwa so:
Code:
const char monthStr1[] PROGMEM = "January";
const char monthStr2[] PROGMEM = "February";
const char monthStr3[] PROGMEM = "March";
etc.

Eventuell hast Du nicht die Version des AVR-Compilers installiert, die vom Arduino-Team oder vom Entwickler der Library vorgesehen ist. Oder nicht die Version der Library, die für die verwendete Compilerversion vorgesehen ist. Oder sowas.

1044  International / Deutsch / Re: Problem: LED-Bargraph ansteigen lassen solange Taster gedrückt on: December 05, 2013, 05:50:14 am
Es klappt zwar, dass die Anzeige ansteigt, aber das tut sie auch wenn der Taster nur einmal kurz gedrückt wurde.

Wenn ich Deine Beschreibung richtig verstanden habe, dann geht Dein Code überhaupt nicht darauf ein, was Du machen möchtest.

So wie ich es verstanden habe, soll sich Im Programmablauf immer dann etwas ändern, wenn sich der Status des Buttons ändert. Mein Code (siehe unten) fängt also damit an, Änderungen im Buttonstatus festzustellen und die Zeit (Stand des millis()-Timers) zu merken, zu der sich der Status geändert hat.

Und dann soll es eine Veränderung im Zeitablauf nach einer Statusänderung geben:
- bei gedrücktem Button soll mit zunehmender Drückzeit die Anzahl der eingeschalteten LEDs zunehmen, bis alle LEDs eingeschaltet sind
-. bei losgelassenem Button soll mit zunehmender Zeit die Anzahl der eingeschalteten LEDs abnehmen, bis alle LEDs aus sind

So wie ich es verstanden habe, habe ich es mal in Code gepackt. Wie schnell das Ein-/Ausschalten der LEDs vonstatten gehen soll, wird über die Konstante
#define increaseLedAfter 1000 // milliseconds of continous button press
eingestellt. 1000 Millisekunden bedeutet, dass pro 1 Sekunde eine zusätzliche LED ein- bzw. ausgeschaltet wird.

Code:
#define BUTTONPIN 2  // the number of the pushbutton pin
int led[] = {4,5,6,7,8,9,10,11,12,13};
const int numLEDs= sizeof(led)/sizeof(led[0]);

#define increaseLedAfter 1000 // milliseconds of continous button press

void setup() {
  for (int i = 0; i <10; i++)
  {
    pinMode(led[i], OUTPUT);
  }
  pinMode(BUTTONPIN, INPUT);
}
 
void loop()
{
  static boolean oldButtonState;
  static unsigned long sameStateSince;
  static int ledsMaxON;
  int ledsON;
  long pressTime;
  boolean buttonState = digitalRead(BUTTONPIN);   // variable for reading the pushbutton status
  if (buttonState != oldButtonState)  // Buttonstatus hat sich geändert
  {
    oldButtonState=buttonState;
    sameStateSince=millis();             // Zeit merken
    if (buttonState==HIGH) ledsMaxON=0;  // und ggf. die Zahl der maximal geschalteten LEDs zurücksetzen
  }
  if (buttonState==HIGH)  // Taste wurde gedrückt
  { // ggf. die Zahl der eingeschalteten LEDs erhöhen
    ledsON=(millis()-sameStateSince)/increaseLedAfter;
    if (ledsON>numLEDs) ledsON=numLEDs;
    ledsMaxON=ledsON; // Anzahl der maximal geschalteten LEDs merken
  }
  else if (ledsMaxON>0) //
  { // ggf. die Zahl der eingeschalteten LEDs vermindern
    ledsON=ledsMaxON-(millis()-sameStateSince)/increaseLedAfter;
    if (ledsON<0) {ledsON=0;ledsMaxON=0;}
  }
   
  for (int i=0;i < numLEDs; i++)
  {
    if (i+1<=ledsON)
    {
      digitalWrite(led[i], HIGH);
    } 
    else
    {
      digitalWrite(led[i], LOW);
    } 
  }
  delay(20); // Entprellzeit in der Loop als delay
}
1045  International / Deutsch / Re: Balkenanzeige auf Text-LCD: Basisfragen zum Erstellen / Gebrauch von Libraries on: December 05, 2013, 02:36:03 am
Aber was soll ich dann machen ? Wenn ich eine Initiierung weglasse, dann meckert der Compiler. Und beim Setzen eines gleichen Namens auch.

Der Compiler meckert, wenn Du syntaktisch falschen Code schreibst.

Wenn Du logisch falschen Code schreibst, der aber syntaktisch korrekt ist, ist das dem Compiler egal.

Für funktionierende Programme mußt Du syntaktisch und logisch korrekten Code schreiben.

Was in Deinem Fall das beste Vorgehen ist, wäre im Einzelfall zu prüfen. So von Deiner Beschreibung her hört es sich so an, als wenn Du die Klasse LiquidCrystal_I2C um neue Funktionen erweitern möchtest. Dazu fällt mir als erstes das Stichwort "Vererbung" ein:
http://www.willemer.de/informatik/cpp/cpperben.htm

D.h, von der Basisklasse LiquidCrystal_I2C abgeleitet soll eine neue Klasse LCDBar erstellt werden, die
a) alles das kann, was LiquidCrystal_I2C  auch kann und
b) darüber hinaus zusätzliche Funktionen für eine Balkenanzeige hat

Deine Library verwendet dann die originale Basisklasse, um eine erweiterte Spezialklasse zu definieren.

In Deinem Sketch verwendest Du dann die erweiterte Klasse, mit den ererbten Eigenschaften und Funktionen sowie den neuen Funktionen.
1046  International / Deutsch / Re: Digital 13 beim UNO anders verwendbar? on: December 05, 2013, 01:43:02 am
Ist Digital 13 beim UNO anders verwendbar? Bekanntlich ist da ja eine Led geschaltet.

Bei den Boards im "R3" Design ("UNO R3") kannst Du Pin-13 uneingeschränkt als INPUT oder OUTPUT verwenden.

Und bei den Boards im "Vor-R3" Design verwendest Du Pin-13 besser nur als OUTPUT, aber nicht als INPUT.
1047  International / Deutsch / Re: Balkenanzeige auf Text-LCD: Basisfragen zum Erstellen / Gebrauch von Libraries on: December 04, 2013, 02:52:54 pm
Fragen:
Ist denn die Doppel-Initiierung des LCD-Displays einmal mit lcd im eigentlichem Nutzprogramm, und mit lcdB in meiner Lib korrekt ?

Nein.
1048  International / Deutsch / Re: Ethernet Shierl anfangsprobleme on: December 03, 2013, 03:02:35 pm
steht, brauchst du nix zu ändern.
Einfach nicht beachten, es läuft fast vonalleine smiley-grin

Das gilt allerdings nur, solange man nur EIN Ethernet-Shield hat.

IM SELBEN NETZWERK darf jede MAC-Adresse NUR EINMAL vorkommen. D.h. sobald er im selben Netzwerk ein zweites, drittes etc. Ethernet-Shield verwenden möchte, muß er unbedingt darauf achten, dass jede MAC-Adresse zu jeder Zeit nur für ein Gerät vergeben ist. Sonst laufen möglicherweise alle Geräte mit identischer MAC-Adresse nicht, und solche Fehler können ggf. schwer zu debuggen sein.
1049  International / Deutsch / Re: Problem bei GPS Shield on: December 03, 2013, 02:44:33 pm
Rohdaten kommen an ... danke .. =)

Na bravo!
Den TinyGPS-Sketch anzupassen sollte dann leicht sein, ich glaube, Du brauchst nur zwei Zeilen ändern
Code:
// #include <SoftwareSerial.h>
#include <AltSoftSerial.h>
und
// SoftwareSerial ss(4, 3);
AltSoftSerial ss(8, -1);

1050  International / Deutsch / Re: Problem bei GPS Shield on: December 03, 2013, 02:20:33 pm
Ja Sorry - ich kann auf meinem GPS Shield nur die pins 0-7 entweder für Ts oder Rx Jumpern. smiley-red

Ja mei, dann eben den TX-Jumper weglassen und ein Kabel direkt von GPS-TX nach Pin-8 zum Arduino-Board ziehen.

Das Shield ist Mist, wenn GPS-TX nicht auf D8 als RX für AltSoftSerial am UNO gejumpert werden kann.
Da hättest Du lieber gleich ein einfacheres "GPS-Modul" statt ein "GPS-Shield" gekauft.

AltSoftSerial ist wirklich um Längen besser als SoftwareSerial, aber bei AltSoftSerial kannst Du Dir nicht den Pin frei aussuchen, mit dem die Library arbeiten soll.
Pages: 1 ... 68 69 [70] 71 72 ... 191