Show Posts
Pages: 1 ... 81 82 [83] 84 85 ... 199
1231  International / Deutsch / Re: Drehimpulsgeber: Sketch in größeren Sketch integrieren - wie? on: July 24, 2013, 03:11:45 pm
Oder:
Statt 1Puls = 1 Schritt auch die Pulsgeschwindigkeit zu berücksichtigen:
Langsames Ändern = fein, Schnell = grössere Schritte / Puls

Das ist intuitiver, finde ich, da nicht die gerade gewählte Geschwindigkeit gemerkt/angezeigt werden muss.
Bei mehreren Schritten muss man oft klicken, wenn man die Schrittweite zu groß hatte und wieder kleinere Schritte haben will.
1232  Using Arduino / General Electronics / Re: i need help please identifying electronic components ! on: July 24, 2013, 10:13:36 am
Quote
why someone would use a 0.25 ohm resistor ?


5W  0.25 Ohms can survive 4 Amps ( and will show 1V then )
1233  Using Arduino / General Electronics / Re: Cardiograph on the Arduino on: July 24, 2013, 10:05:05 am
Quote
" ...not intended, authorized, or warranted for use as components in applications intended to support or sustain life."

If you don't plan to sell it as a medical product, measuring pulse frequency, temperature, blood pressure or other vital signals  is a nice application to test sensors.  (a lie detector is not supposed to sustain life ?)
I would not really fear to connect some high impedance sensor input wires to my skin.

But if google does not reveal such use cases, I'm not sure you find much help for your very generic question.

Arduino is fast enough to measure a few analog channels with signals in the 0-1V range with the required speed ( ~10Hz ).
You probably need some opamps to get signals in the proper range.
Hardware questions how to get usable signals is the more challenging part...

And the "...graph" ( output ) part  is another question. I guess you want to transfer data to a PC and display your "cardiograph" there.
1234  International / Deutsch / Re: GND schalten bei Common Anode on: July 24, 2013, 09:02:31 am
Bei der 4Ziffern-Anzeige hast du doch 4 Anoden zum Multiplexen. Die werden in deinem Fall auch an OUTPUT-Pins (einer davon jeweils HIGH) gelegt, oder ?

( Am besten über Transistoren, da 8*20mA doch etwas zu viel sind und du die Kathoden sonst auch nicht gleichzeitig einschalten könntest )

Packst du die Vorwiderstände auf die 8 Kathoden-Seite ?

Common Cathode ist genauso einfach/schwierig, denke ich...

Sobald dir 12 Pins direkt vom Arduino zuviel ist, aber du keinen speziellen Driver verwenden willst, brauchst du eh Schieberegister, die dann nur noch Hi / Low geschaltet werden.
1235  International / Deutsch / Re: Multiple LEDs an Attiny85 on: July 23, 2013, 07:44:31 am
Quote
Gibts irgendwo ne Anleitung wie man mit Tranistoren umgeht und sie berechnet?
Sicher, auf zig Level. Für alles Mögliche, nicht nur Digital-Signale schalten.

Mein Tip: Besorg dir ein Tütchen (10* )  BC 337 , kümmere dich nicht um "viel bessere MOSFETS" Hinweise,
und krieg ein Gefühl für das Steuern per Strom statt Spannung.
(Motoren im Ampere-Bereich zu steuern ist wieder ganz was anderes) 
1236  International / Deutsch / Re: Multiple LEDs an Attiny85 on: July 23, 2013, 07:09:03 am
Tja: 3,2V LED an 5 - 6V Versorgung heisst, dass du alle parallel schalten musst und fast die Hälfte deiner Batterie-Kapazität in den Vorwiderständen verbraten wird.
Ausserdem ist 6V etwas knapp für den Eingang eines 7805.

3 Batterien (4,5V) wäre schon etwas günstiger ( ohne 7805 ),
oder eben 6, und die LED jeweils paarweise mit einem (9-6.4)V/0.02A = 130 -> 150 Ohm Widerstand.

Wenn du 2 Pins hast, warum nicht doch in 2 Gruppen z.B. 2*2 + 3*2 Led getrennt schalten?
Da kannst du dann auch sicher jeden beliebigen NPN-Transistor zum Schalten nehmen.
1237  International / Deutsch / Re: Multiple LEDs an Attiny85 on: July 23, 2013, 05:53:44 am
Quote
sie sollen alle die gleiche PWM bekommen.
Wie mach ich das am geschicktesten.

1 Pin über 1 Basiswiderstand an 1 NPN Transistor.
Je nach LED 1 oder 2 hintereinander mit 1 Vorwiderstand zwischen 5V und Collektor, Emitter an GND.
Davon 5 oder 10 parallel. Das gibt dann irgendwas zwischen 50 ( 5*10mA ) .. 200 ( 10*20mA)  IC.

Was ist denn der Eingang in den 7805 ? Bei geregelten 12V kannst du da 3 bis 4 LED hintereinander dranhängen, dein Transistor schaltet dann nur ca. 3*15 mA, das ginge dann mit jedem NPN Transistor.

Also:
Was für LED ? ( Vorwärtsspannung )
Wie hell soll es sein ? ( Strom )
Welche Spannung hast du zur Verfügung ?
--> "Topologie" ( schönes Wort, wie viele hintereinander und parallel ) ,  Vorwiderstände ausrechnen.
--> Transistor auswählen (Achtung bei 100 mA oder mehr ) . Basiswiderstand ist relativ unkritisch ( 1k )
1238  International / Deutsch / Re: Einsteiger braucht Hilfe mit Ablaufsteuerung on: July 23, 2013, 04:06:51 am
Die C-Syntax scheint Dir noch nicht ins Blut übergegangen zu sein.

Code:
int Start(void);
int get_vacuum(int);
int flushing(int);
void test_result_funktion(int);
kannst Du löschen.

Kannst du als echter c Programmierer aber auch drin lassen. ( muss ich ausnahmsweise mal uwe etwas widersprechen).
Das ist eine Arduino-Spezialität: Wenn die IDE aus der .ino eine .cpp Datei macht, werden erforderliche Deklarationen hinzugefügt.

Dass deine int Start(void) Funktion nicht immer einen Wert zurückliefert, merkt die IDE leider nicht, und auch der gcc wird ohne Warnungen aufgerufen und legt dich so rein.
1239  International / Deutsch / Re: Serielle Kommunikation: String Maskieren on: July 23, 2013, 03:51:20 am
Wenn du Texte schickst, statt Stefans Binär-Vorschlag, erleichtert es das Leben ( genaugenommen die Synchronisation der zwei Maschinen) gewaltig, wenn einige wenige Steuerzeichen drin sind: z.B.
255;001;123<NL>  

Der Arduino liest dann z.B. alles bis zum NewLine Zeichen
und ersetzt die Trennzeichen jeweils durch eine Ende-Kennung 0.

Code:
int c; char buf[10];
if (Serial.available() >=9)
{
  int i = 0;  
  while ( ( c=Serial.read() ) != '\n' ) buf[i++] = c;

  buf[3] = buf[6] = buf[9] = 0;
  int i1 = atoi(buf+0);  // wandeln der Teilstrings
  int i2 = atoi(buf+4);
  int i3 = atoi(buf+7);
  // Auswerten ...
}

[Nachtrag:]Editiert, immer noch schneller aber ungetestet smiley-wink, vielleicht wird Terwi's Lösung besser und/oder einfacher verständlich
1240  International / Deutsch / Re: Mehrfarbige LEDs über Transistor ansteuern - wie? on: July 23, 2013, 03:23:28 am
Quote
Wäre 240, 150, 50 ein orange?

Mal abgesehen davon, dass das auf die LED ankommt, und dass orange / hellbraun  etc. generell schwierig ist,
würde ich das Blau rausnehmen und je nach gewünschter Helligkeit das gelb (255,255,0) dunkler und mit weniger weniger grün als rot, bis etwa bei (240, 90, 0) etwas schönes rauskommt.

Quote
Schaut man in die LED, sieht man zwar von jeder Farbe etwas, aber ein orange ist das nicht.
Klare Farben ( Rot / Grün / Blau ) sind natürlich klarer smiley-wink
Mischfarben sieht man hinter etwas Mattem besser. (Zur Not mit feinstem Schmirgelpapier die LED "polieren" )
1241  International / Deutsch / Re: Kommuniktation zwischen Arduinos on: July 22, 2013, 05:51:19 pm
SPI ist auch nicht viel besser, was die Leitungslänge angeht, und braucht auf dem Master pro Slave einen Select-Pin.

Da Master/Slave = Halbduplex reicht, könnte man auch mit Rx/Tx  RS485 - Transceiver ansteuern, für größere Entfernungen.

Wenn die Slaves ihre Sendeleitung nur bei Bedarf auf OUTPUT schalten, sollte man solch ein Netz doch auch ohne Extra-Hardware hinkriegen ???


 
1242  International / Deutsch / Re: Drehimpulsgeber: Sketch in größeren Sketch integrieren - wie? on: July 22, 2013, 05:32:12 pm
Auch ein 16kB großer Sketch braucht keine Sekunde, wenn man's richtig macht smiley-wink
Nur mal als Größenordnung 1 byte/clock angenommen: Selbst wenn jeder Befehl in jedem loop-Durchlauf dran käme ( einmal ), dauert das ca. 1 ms

Quote
Die Kombination von millis() und Interrupt funktioniert wohl nicht, wie ich im anderen Faden eben gelesen habe.
Das kann man so nicht sagen, aber schön wäre es schon, wenn nicht nur im Sekundentakt auf encoder-Änderungen reagiert werden würde.
1243  International / Deutsch / LCD Werte anzeigen on: July 22, 2013, 05:16:23 pm
Bei einem 2-zeiligen LCD ist setCursor(0,2); nicht definiert.

Bei (inches == 8 ) wird die 2 Zeile flimmern,
Wenn mehr als einer der 3 analogReads  < 400 liefert, flimmert die erste Zeile.

Ob man es durch zu häufiges ansteuern schafft, dass ein Text an der falschen Position erscheint, weiss ich nicht,
aber schneller als mit einem 100 msec delay kann eh keiner sehen, was auf dem Display erscheint.

Edit: Today at 06:59:54 am by uwefed

Nachtrag : Danke, Uwe. 8 ) sieht  so  smiley-cool viel cooler aus .
1244  International / Deutsch / Re: Drehgeber/Encoder auslesen mit Mega2560 on: July 22, 2013, 04:57:18 pm
micros() und millis() funktionieren in Interrupt-Routinen nicht korrekt (d.h. sie werden nicht inkrementiert), da der Timer mit dem diese gezählt werden selbst mit einem Interrupt läuft.
Es ist richtig, dass sie innerhalb der interrupt-Routine nicht incrementiert werden.
Aber das tut ja nichts zur Sache, da readmicros() ja schnell vorbei ist.

Ein Problem ist, dass sich keiner für die gemessene dauer zwischen zwei Interrupten interessiert, denn loop() hängt meist im delay.
Das zweite Problem ist, dass dauer größer als ein byte ist, und daher nicht immer am Stück in loop übernommen wird.
Das dritte Problem ist, dass ein long eine ganze Zahl (integer) ist, und bei
 long faktor=0.029296875;
der Compiler fies grinst, weil es syntaktisch richtig ist, aber kein Unterschied zu
long faktor = 0;

Was passiert denn bei

Code:
void loop() {
  noInterrupts();
    unsigned long d = dauer;
  interrupts();
  Serial.println(d*2929/100000);    
  delay(500);
}  

Damit kriegst du wenigstens alle halbe Sekunde die gerade letzte dauer mit Umrechnung angezeigt.
Ob du lieber einen Mittelwert der letzten halben Sekunde haben willst, musst du wissen.


1245  International / Deutsch / Re: Reset beim Start serieller Kommunikation nervt !? on: July 22, 2013, 09:33:21 am
Oh, fühlst du dich unverstanden ? Da müssen wir mal drüber reden smiley-wink

DTR heisst eigentlich   Data Terminal Ready
und ist deshalb gern auf LOW, wenn keine Verbindung besteht.


Quote
On many operating systems, including Windows, the DTR line is held low while the serial port is unused and not being controlled by any applications.
http://en.wikipedia.org/wiki/Data_Terminal_Ready

Ich denke, TERWI's Trick besteht darin, es einfach auf LOW zu lassen, und trotzdem zu senden, während "normale" Terminal-Programme das Signal HIGH ziehen. ( Gibt es eigentlich einen Reset, wenn man SerialMonitor beendet ??? )

Vorausgesetzt, der USB-Treiber und der 16U2 auf dem UNO bzw. früher der FTDI, oder die CP21xx der üblichen USBtoTTLSerial-Module geben die Signale (alle) weiter.
Pages: 1 ... 81 82 [83] 84 85 ... 199