Show Posts
Pages: 1 ... 28 29 [30] 31 32 ... 43
436  International / Deutsch / Re: Segment Leds (Zahlen) steuern on: April 21, 2011, 08:48:25 am
Super die erste zahl leuchtet aber die 2 Zahl leuchte nicht.
Beschreib mal, wie Du was angeschlossen hast.
437  International / Deutsch / Re: Segment Leds (Zahlen) steuern on: April 21, 2011, 06:56:31 am
Steht doch alles drin was Du brauchst.

Unter "Pinbelegung" das 1. Bild:
Die sieben Segmente der 1. Ziffer verteilen sich auf die Pins 16, 15, 3, 2, 1, 18 und 17.
Anhand der Symbole sieht man, dass die Segmente eine gemeinsame Kathode (also Masse) haben, diese ist Pin 14.
Analog dazu hast Du die Pinbelegung der 2. Ziffer auf dem 2. Bild.
Die Punkte verwenden demnach die beiden noch übrigen Pins 4 und 9. Anhand der Lage würde ich sagen Pin 4 ist der linke Punkt.
Das Bild bei "Abmessungen" zeigt Dir noch an, wie die Pins durchnummeriert sind.
438  International / Deutsch / Bibliothek für das Touch Display MI0283QT-2 von Watterott on: April 21, 2011, 02:16:38 am
Von Watterott gibt es ja seit einiger Zeit ein feines Grafikdisplay mit Touchpad, das MI0283QT-2.
http://www.watterott.com/de/MI0283QT-2-Adapter

Da ich dieses Display als Eingabepanel für mein MotoStack Projekt verwenden will (http://www.mafu-foto.de/projektebasteln/projektebastelnmotostack), habe ich mir eine kleine Bibliothek zum Erstellen von Menübuttons geschrieben.
Diese Bibliothek stelle ich der Allgemeinheit zur Verfügung. Es ist bisher eine noch etwas rudimentäre Version 0.1, aber bereits einsatzfähig.
Nähere Infos, Nutzungsbedingungen, Download und ein Beispielvideo sind hier zu finden: http://www.mafu-foto.de/elektronik/arduino
439  International / Deutsch / Re: Segment Leds (Zahlen) steuern on: April 20, 2011, 12:28:41 pm
Sieben Pin für die Zahl (7 Segmente), einer für den Punkt und dann noch eine gemeinsame Anode bzw. Kathode.
Gibt es bei Pollin kein Datenblatt? Voraussichtlich brauchst Du auch noch Vorwiderstände.
Bei der Menge an Pins ist eigentlich nur der Anschluss über LED Treiberbausteien sinnvoll.
440  International / Deutsch / Re: Passthrough headers korrekt ans arduino uno löten on: April 20, 2011, 07:57:53 am
Wo in München?
441  International / Deutsch / Re: Anfänger plant Projekt "Lichtsteuerung für 50 Kameras", wer bitte hilft? on: April 20, 2011, 03:23:48 am
Aber irgendwas mit Blitzgeräten macht dann clockdivider laut Video schon.
Schon klar, war aber nicht Bestandteil seiner Frage.  smiley-wink
442  International / Deutsch / Re: Anfänger plant Projekt "Lichtsteuerung für 50 Kameras", wer bitte hilft? on: April 20, 2011, 01:30:30 am
Soviel ich weiß ist an älteren Blitzen auch die volle Lampenspannung dran (150 bis 200V).
Das konnen sogar bis zu 300V sein. Ich hab hier für HighSpeed Aufnahmen ein paar alte Vivitar Blitze, an denen liegen knapp 250V an.
Normalerweise erwähne ich das auch. Aber in diesem Fall ging es ihm um das Erfassen der Kameraauslösung über den Blitzkontakt und da ist ja der Blitz aussen vor.

@clockdivider
Die Kamera selbst legt am Blitzanschluss keine Spannung an. Für die Verbindung vom Arduino zum Blitzanschluss der Kamera brauchst Du also keine Absicherung. Das ist wie wenn Du einen Taster anschließt.
443  International / Deutsch / Re: Anfänger plant Projekt "Lichtsteuerung für 50 Kameras", wer bitte hilft? on: April 19, 2011, 07:34:36 pm
Einfache Blitzauslösung über Mittenkontakt (keine Blitzsteuerung):
Am Mittenkontakt des Blitzes liegt Spannung an (bei einigermaßen aktuellen Blitzen 3-6V), der Randkontakt ist Masse. Die Kamera schließt beim Auslösen diesen Anschluss kurz und der Blitz löst aus.

Wenn Du also auf das Auslösen der Kamera reagieren willst, solltest Du die Anschlüsse des PC-Sync-Kabels mit Masse und einem digitalen Pin des Arduino verbinden (Pin als Eingang setzen). Gleichzeitig den internen PullUp des Pins aktivieren. Im Normalzustand ist der Pin HIGH, löst die Kamera aus wird er LOW.
444  International / Deutsch / Re: Vorsicht bei DVD-Audioausgang und Arduino? on: April 19, 2011, 04:21:34 pm
Z.B. so eines: http://www.conrad.de/ce/de/product/512723
Passende Buchse dazu: http://www.conrad.de/ce/de/product/733946
445  International / Deutsch / Re: Fussgängerampel on: April 08, 2011, 11:50:28 am
Danke für die Info.
So hab ich auch wieder was gelernt.
446  International / Deutsch / Re: Fussgängerampel on: April 08, 2011, 09:47:45 am
Ist dann fast genauso durchführbar und ebenso einfach. Der Unterschied ist dann nur, dass bereits in der loop() Schleife zwischen acht Basiszuständen durchgewechselt wird.
ROT_GRUEN, ROT_GELB, ROT_ROT, ROTGELB_ROT, GRUEN_ROT, GELB_ROT, ROT_ROT, ROT_ROTGELB
Das geht genauso mit Zustandszähler hochzählen nach Zeitablauf.
Dabei wird jedesmal die Taste abgefragt. Sobald sie gedrückt wurde, dies in einer Variable (Tastenflag) speichern. Sobald dann einer der ROT_ROT Zustände erreicht und gleichzeitig das Tastenflag gesetzt ist einfach die Fußgängerschleife durchführen. Nach deren Ende das Tastenflag wieder löschen und der normale Ampelfluss geht weiter.

So eine Kreuzung mit Rundumgrün für Fußgänger hab ich ehrlich gesagt noch nirgends gesehen.
447  International / Deutsch / Re: Fussgängerampel on: April 08, 2011, 02:49:45 am
Für eine Ampel wird weder ein Delay noch ein Interrupt benötigt.
Der Ablauf hat ja ein festes Schema, somit würde ich das Ganze in einzelne Zustände aufteilen.
Jeder einzelne Zustand hat feste Zeiten, die einzige Ausnahme ist die Grünphase der Verkehrsampel.

Wir erstellen uns also erst einmal ein paar #defines um jedem Zustand einen Namen zu geben (erhöht die Lesbarkeit des Codes).
Zu der Zuständen im Einzelnen und deren Anzahl komme ich später noch.
Wichtig: Die Zustände aufsteigend durchnummerieren.

Dann brauchen wir noch ein paar Arrays. Die Größe jedes Array entspricht der Anzahl der Zustände.
Wir haben fünf Lampen (Rot/Gelb/Grün Verkehr, Rot/Grün Fußgänger), also fünf Arrays für den Status (HIGH/LOW) der LED-Pins.
Dann brauchen wir noch ein Array in dem die Ablaufdauer jedes Zustandes gespeichert wird.

Dann benötigen wir noch zwei Variablen:
Ein int, um den aktuellen Zustand zu speichern.
Ein unsigned long, dort wird abgelegt, wann der aktuelle Zustand begonnen hat.

Legen wir nun die Zustände und den möglichen Ablauf fest:

Zustand 1 (Z_GRUEN_ROT): Verkehrsampel ist Grün, Fußgängerampel ist Rot (Zeit: variabel)
Zustand 2 (Z_GRUEN_ROT_TASTE): Verkehrsampel ist Grün, Fußgängerampel ist Rot, Taster wurde gedrückt (Zeit: fest)
Zustand 3 (Z_GELB_ROT): Verkehrsampel ist Gelb, Fußgängerampel ist Rot (Zeit: fest)
Zustand 4 (Z_ROT_ROT_A): Verkehrsampel ist Rot, Fußgängerampel ist Rot (Zeit: fest)
Zustand 5 (Z_ROT_GRUEN): Verkehrsampel ist Rot, Fußgängerampel ist Grün (Zeit: fest)
Zustand 6 (Z_ROT_ROT_E): Verkehrsampel ist Rot, Fußgängerampel ist Rot (Zeit: fest)
Zustand 7 (Z_ROTGELB_ROT): Verkehrsampel ist Rot/Gelb, Fußgängerampel ist Rot (Zeit: fest)

Innerhalb von setup() wird die Zustandsvariable auf Z_GRUEN_ROT gesetzt. Die Zeitvariable ist erst mal egal, da Z_GRUEN_ROT ja keine feste Zeitvorgabe hat.
Anhand der Werte für Z_GRUEN_ROT in den Lampen-Arrays werden die Pins gesetzt.

Innerhalb von loop() kommt nur eine if-else Abfrage ob der aktuelle Zustand Z_GRUEN_ROT ist. Die ganze Funktionalität spielt sich entweder im if oder im else Block ab. Danach ist loop() auch schon zuende und beginnt von vorne.

Solange Z_GRUEN_ROT aktuell ist, trifft die Abfrage zu.
Innerhalb der if-Schleife wird nun der Taster abgefragt.
Ist er nicht gedrückt, wars das auch schon. if wird verlassen, loop() beginnt von vorne.
Ist der Taster gedrückt, wird der aktuelle Zustand auf Z_GRUEN_ROT_TASTE gesetzt. In der Zeitvariable wird der aktuelle Wert von millis() gespeichert. Das wars, if Schleife verlassen, loop() beginnt von vorne.

Nun wird es spannend:
Da der aktuelle Zustand ja nun nicht mehr Z_GRUEN_ROT ist, wird in den else-Teil der if-Abfrage gesprungen.
Dort wird zuerst die Ablaufdauer des aktuellen Zustands (egal welcher das ist) aus dem Array ausgelesen. Solange der Wert der Zeitvariable + Ablaufdauer größer als millis() ist, ist die Zeit für den aktuellen Zustand noch nicht abgelaufen. Es gibt also nichts zu tun, else wird verlassen, loop() beginnt von vorne.
Ist die Ablaufzeit erreicht, so wird in den nächsten Zustand übergegangen. Da die Abfolge immer gleich ist, kann man die Zustandsvariable einfach um eins hochzählen. Ist der Wert > Z_ROTGELB_ROT wird er auf Z_GRUEN_ROT gesetzt.
Anhand der Werte für den aktuellen Zustand in den Lampen-Arrays werden wieder die Pins gesetzt.
In der Zeitvariable wird wieder der aktuelle Wert von millis() gespeichert.
Das wars, else verlassen, loop() beginnt von vorne.


Zur Info: Der Zustand Z_GRUEN_ROT_TASTE wird benötigt, da ja nach dem drücken der Taste nicht sofort eine Ampelschaltung erfolgt.

Was noch eine sinnvolle Erweiterung wäre:
Den Zeitpunkt der letzten Ampelschaltung speichern. Wenn die Fußgängerampel erst vor kurzem Grün war, sollte die Pause nach dem Drücken der Taste länger sein.



Ich bin mir jetzt nicht sicher ob ich jetzt alles bedacht habe und der Ablauf so einwandfrei funktioniert. Aber vom Ansatz sollte es passen.
448  International / Deutsch / Re: Einschaltverzögerung on: April 01, 2011, 01:27:58 am
Einfach nach ein paar ms nochmal abfragen würde ich nicht, so kannst Du keine Schwankungen ausschließen. Es könnte ja sein, dass der Wert gerade in den zwei Momenten passt und ansonsten nicht.

Mein Vorschlag:
Code:
unsigned long zeit;
boolean check;
if (val >= 320 && val <= 486)
{
  check = true;
  zeit = millis();
  while (millis() - zeit < 250)
  {
    if (val < 320 || val > 486)
      check = false;
  }
}
else
  check = false;
if (check)
{
  digitalWrite(led3,HIGH);
  delay(100);
}
else
  digitalWrite(led3,LOW);
Ungetestet, bin gerade auf dem Sprung in die Arbeit. Sollte aber so funktionieren.
449  International / Deutsch / Re: Eigene Funktionen, wie den Code kürzen/optimieren? on: March 31, 2011, 12:47:35 am
Uuups, hast recht. smiley-red
Da ich ständig zwischen Pascal und C++ wechsle, kommt das schon mal vor.
450  International / Deutsch / Re: Tip für "hackbaren" Servo on: March 30, 2011, 01:24:44 am
Kommt auf den Verwendungszweck und wieviel Du ausgeben willst an.
Ich verwende gerne die Hitec HS-785HB Windenservos, die schaffen von sich aus (je nach Ansteuerung) 7-9 volle Umdrehungen.
Die sind auch recht kräftig, Geschwindigkeit liegt eher im Mittelfeld.
Kosten aber knapp 30€ das Stück.
Pages: 1 ... 28 29 [30] 31 32 ... 43