Show Posts
Pages: 1 ... 30 31 [32] 33 34 ... 79
466  International / Deutsch / Re: Wann sketch hochladen? on: January 26, 2014, 10:41:34 am
Du kannst den Ardu in der Schaltung lassen zum Programmieren, wenn die Pins der Seriellen Schnittstelle frei sind.

Der Sketch wird immer in Flash geladen.
467  International / Deutsch / Re: Arduino Mega 2560 + sainsmart 16ch relay borad on: January 26, 2014, 08:44:17 am
Du hast an jedem Relais einen Klemmbock mit 3 Anschlüssen.
Du hast jetzt warscheinlich deine Drähte am Mittleren und Rechten Anschluß.
Nimm einfach den Linken und den Mittleren und dein Problem ist gelöst.
468  International / Deutsch / Re: Frage zur Motorsteuerung on: January 26, 2014, 05:56:27 am
Man sollte es trotzdem vermeiden, da es sehr verwirrend ist und sehr leicht zu Fehlern führt wenn man diese Feinheiten nicht genau versteht.
Auf dem Niveau, auf dem der Kollege programmiert, würde solche Hinweise nicht geben.
Es geht nicht, gleiche Namen sind verboten!
Auch wenn Experten wie du den Hintergrund verstehen und es doch irgendwie verwenden könnten. Ich bin mir sicher du machst es nicht, es ist einfach schlechter Stil.

Um im Falle unseres Kollegen Papla ist es sicherlich ein Fehler.
469  International / Deutsch / Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ) on: January 26, 2014, 05:52:21 am
Also das Problem mit der Überspannung entsteht ja nur weil der Sonsor Masse am Gehäuse hat.
Die Masse am Gehäuse sorgt vor allem für eine ungenaue Messung.
Mit dem AD misst du ja die Spannung zwischen AD und Arduino GND.
Wenn der Arduino seine Masse irgenwo herkriegt, z.B. aus der E-Box im Auto, und der Sensor seine Masse vom Motorblock, dann können da schnell einige 100mVbis zu 3V  potentialunterschied sein, die dir dann dein messergebnis verhauen.

Du brauchst einen Sensor, der potentialfrei ist, also keine Verbindung zum Gehäuse hat.
Eine Abhilfe wäre, einen zweiten AD-Eingang zu nehmen, und die relative Masse am Sensor mitzumessen dann kannst du den Fehler rausrechnen. (der Motorblock kann auch negativ gegenüber dem Arduino sein, du mußt also einen Spannungsteiler von 5V bilden)

...benötige ich doch nur eine Schottky für die Induktiven Spannungen oder?
Für eine Signalspannung (auf mit GND auf Gehäuse) kannst du auf die Supressordioden verzichten. Aber nicht auf den EMV-Kondensator und den Tiefpass!
Also: 22nF auf GND, 10k, 100nF nach GND, 2 Schottky, Arduino.

Wo ich dir die Supressordioden aber dringend empfehle, ist die Spannungsversorgung des Arduino!
KFZ Bordnetze sind recht versaut. da wandern Spannungspulse über +/-100V rum. vor denen solltest du den Arduino schützen.
470  International / Deutsch / Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ) on: January 25, 2014, 04:47:21 am
Jurs hat recht, Transienten-Suppressordioden helfen, und meine Antwort mit den Schottky dioden war zu kurz gegriffen.
Ich hatte übersehen, dass es sich um eine Automotive Anwendung handelt.

Im KFZ mußt du mit verschiedenen Arten von Überspannung rechnen:
a) im Falle eine Kabelfehler dauerhaft 12V
b) hochenergetische Pulse die kapazitiv in die Sensorleitung eingekoppelt werden die Spannungen größer als +/-100V haben können.

Entsprechend mußt du auch zweimal filtern:
Einmal mit Suppressordioden oder anderen Bauteile die die entsprechenden Energien aufnehmen können, um die hohen Spannungspulse platt zu machen. Dabei hast du das Problem, dass du ja die Suppressordiode so dimensioniern mußt, dass bei normalen Signalspannungen noch kein Strom durch die Schutzdiode fließt.
Wenn du hier eine wählst mit einer Nennspannug von 5V, dann hast du eine Klemmenspannung größer 7V. Zuviel.
Also brauchst noch eine zweite Stufe:
nach einem Widerstand je eine Schottky-Diode von Signal auf 5V und GND. Die klemmt dann die restliche Spannung auf für den µC verträgliches Niveau. Zusätzlich noch einen EMV-C am Eingang der Schaltung und einen Filter-C vor dem AD-Pin.

Also: von aussen kommend:
- einen EMV-kondendator  (ca 22nF / 50V keramisch)
- Supressordioden
- Längswiderstand
- Schottkydioden
- Filter-C (der mit dem Längswiderstand einen Tiefpass bildet, der auf das Signal und die Abtastung abgestimmt ist)
- AD-Pin
471  International / Deutsch / Re: Öl Temperatur messen, welcher Öltemperaturgeber? (KFZ) on: January 25, 2014, 03:49:11 am
Nimm eine Schottky-Diode auf 5V.
die verfälscht (bei normalen Temperaturen) nicht.

Falls du das anders machen willst, wäre ein Schaltung hilfreich für die Anworten.
472  International / Deutsch / Re: Frage zur Motorsteuerung on: January 25, 2014, 03:43:13 am
Zunächst fehlt die geschweifte Klammer, die die Funktion Motorprogrammrun1 abschliesst.

Und nun, zum wiederholten Male:
Du kannst nicht eine Funktion und eine Variable mit dem gleichen Namen verwenden!
boolean Motorprogrammrun1(boolean active, unsigned int dauer)
und
static boolean Motorprogrammrun1;
funktioniert nicht!

Das wurde dir hier schon einige Male gesagt, von verschiedenen Seiten.
Akzeptiere es endlich!

Quote
Können wir das nochmal gemeinsam Schritt für Schritt durchgehen?   smiley-roll
Bzw. irgendwie anders aufbauen, damit ich irgendwie folgen kann.

Neu aufbauen ist eine gute Idee.
Aber fange bei den Basics an:

Nimm dir deinen UNO, öffne das Beispiel Digital > BlinkWithoutDelay
1. versuche zu verstehen, wie es funktioniert.
2. erweitere es so, dass AN und AUS Zeiten unterschiedlich sind.
3. Erzeuge eine Funktion BlinkWithoutDelay(), in der Loop() aufgerufen wird, die das gleiche macht.
    (die loop sollte nur einen Befehl enthalten: void loop(){BlinkWithoutDelay(AnZeit, AusZeit);})
4. Baue die Funktion so um, das die  LeuchtDiode nach Reset nur einmal aufblinkt.
5. Schliesse einen Taster an, der die Funktion aufruft so dass die led einmal aufleuchtet.

Mach wirklich einen Schritt nach dem anderen.
Wenn was nicht funktioniert, bau dir Serial.print() ein, um dir anzeigen zu lassen was dein Programm macht, und welche WErte die Varialblen an welcher Stelle habe.
Ich weiß, das kommt dir nun einfach vor, nachdem du ja schon Motoren am laufen hattest.
Aber dir fehlt noch das grundsätzliche Verständnis, das mußt du dir erarbeiten.
473  International / Deutsch / Re: Frage zur Motorsteuerung on: January 24, 2014, 01:28:24 pm
Ist denn dein Arduino schon gekommen?

Es ist unglaublich schwer, sich dem Thema rein theoretisch zu nähern.
Dafür meinen allergrößten Respekt.

aber viele Dinge klären sich einfach ganz von alleine, wenn man sie mal ausprobieren kann!
474  International / Deutsch / Re: Gepulste Spannung messen on: January 24, 2014, 09:54:00 am
Ich habe das mit dem FastADC gerade mal ausprobiert:
Code:
// defines for setting and clearing register bits
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

void setup() {
  int start ;
   // set ADC prescale to 16 this is about 60kHz Sampling rate
  sbi(ADCSRA,ADPS2) ;
  cbi(ADCSRA,ADPS1) ;
  cbi(ADCSRA,ADPS0) ;

  Serial.begin(57600) ;
  Serial.print("ADCTEST: ") ;
  start = micros() ;
  for (int i = 0 ; i < 1000 ; i++)
    analogRead(0) ;
  Serial.print((micros() - start)/1000.0) ;
  Serial.println(" usec (avg of 1000 calls)") ;
}
void loop() {}

Da kommen zuverlässig 17µs Dauer raus für einen analogRead();

du kannst sogar noch weiter gehen:
Anstatt in deinen code zu schreiben:
Code:
digitalWrite(pin,HIGH);
delaymicroseconds(150);
wert = analogRead(AD);

könntest du schreiben:
Code:
int wert[10];
digitalWrite(pin,HIGH);
for (int i = 0; i<10;i++) wert[i] = analogRead(AD);
Dann hast du nicht nur einen Wert nach 150µs, sondern 10 Werte, aus denen du sogar den Spannungsverlauf lesen kannst und Mittelwerte bilden.
475  International / Deutsch / Re: Pillenbox on: January 24, 2014, 09:18:29 am
Ich weiß nicht so recht...

Mir kommt das seltsam vor. Das verlinkte Datenblatt erwähnt 85dB das ist schon recht laut.
Aber im Datenblatt steht nix von Melodie.
Ich würde vorher mal nachfragen, ob der wirklich alleine die Melodie spielt, oder ob das der Arduino machen muß.

Du kannst natürlich auch einen Piezolautsprecher nehmen und mit der tone.h library ein Liedchen quäken lassen.
Das wird aber immer leiser sein als ein Piezo-Summer, weil die meist die eigenresonaz nutzen und deshalb besonders laut sind.
Aber es geht halt nicht mehr als ein nerviges "piep-piep-piep".

Wenn du es richtig laut haben willst, nimm sowas:  Piezo-Sirene Summer 6V-15V DC Schalldruckpegel min. 105dB  Wenn die plötzlich anfängt sind auch alle Nachbarn informiert!  smiley-lol
476  International / Deutsch / Re: Pillenbox on: January 24, 2014, 08:05:54 am
Achtung!

Es gibt Piezo Lautsprecher, die mußt du mit Frequenz ansteuern.

Und Piezo Summer, die brauchen nur Versorgung und piepsen von selbst.
477  International / Deutsch / Re: Pillenbox on: January 24, 2014, 08:03:27 am
Nimm einen Piezo Summer - keinen Lautsprecher.
Die geben bei Versorgung mit Spannung einen Festen Ton von sich.
Die kannst du direkt aus dem Arduino Pin betreiben, wenn  es eine 5V Variante ist.

Die kosten so wenig, dass die Ebay-Chinesen sie nur im 5er Pack anbieten:
Ebay piezo summer  5V
478  International / Deutsch / Re: Gepulste Spannung messen on: January 24, 2014, 07:58:12 am
Ich hatte es irgendwo weiter oben schonmal erwähnt: Induktivitäten gibt es überall.
Jede Leitung ist eine Induktivität (unter anderm), die Wendel deiner lampe ist eine Induktivität, etc.

Die hast du immer und überall.
Im konkreten Fall werden diese Peaks auch durch die Schottkydiode geklemmt. Allerdings empfehle ich dir, nach dem Widerstand noch einen 1nF auf Masse zu legen, um ganz schnelle Pulse zu glätten.

Quote
Und wenn du die schnelle ADC implementierung nimmst, dann solltest du den Widerstand auf 1k runternehmen.
Ok, gut zu wissen. Muss mich mit der ganzen Schaltungstechnik nochmal anständig auseinandersetzen.

Das geht schon recht tief rein.
Im Datenblatt wird empfohlen, am ADC Quellenwiderstände kleiner=10k zu verwenden, damit der der Kondensator des µC internen Sample&Hold Gliedes schnell genug umgeladen werden kann. Da jetzt die Samplezeit verkürzt wird, sollte auch der Widerstand verkleinert werden. Ausserdem passt das dann gut zu dem 1nF  zum Glätten.
479  International / Deutsch / Re: Gepulste Spannung messen on: January 24, 2014, 06:44:11 am
In diesem Thread http://forum.arduino.cc/index.php?topic=6549.0 ist beschrieben, wie du die analogRead() Laufzeit auf 16µs drücken kannst. In Reply Nr.5 ist ein komplettes Beispielprogramm zum Austesten.

Wenn du dann anstelle von analogRead() noch die direkte Portmanipulation nimmst, kommst sogar auf 13µs runter.

Falls du nun den Uno nimmst, wird die Schottky-Diode nicht auf die 3.3V sondern auf die 5V gelegt.
Und wenn du die schnelle ADC implementierung nimmst, dann solltest du den Widerstand auf 1k runternehmen.
(Die 12V bleiben, oder?)
480  International / Deutsch / Re: Gepulste Spannung messen on: January 24, 2014, 04:43:26 am
Die 12V Eingangsspannug, die du zitierst, beziehen sich auf die Versorgungsspannung des Arduino Boards, also auf die VIN!

Zu den maximalen Spannungen an den Pins  empfehle ich dir die Lektüre des Datenblattes des Prozessors.
DA heisst es unter 46.1 Absolute Maximum ratings:
"Voltage on Input Pins with Respect to Ground...... ..............................-0.3V to + 4.0V"


Vielleicht solltest du deine ersten Versuche doch lieber mal mit einem Uno machen?
die sind billiger und robuster.
Und wenn du merkst, dass die AD-Messzeiten zu lange sind, sonst aber alles funktioniert, kannst du ja immer noch auf den Due wechseln.
Pages: 1 ... 30 31 [32] 33 34 ... 79