Show Posts
Pages: 1 2 [3] 4 5 ... 12
31  International / Deutsch / Re: BD237 schaltet nicht durch on: December 09, 2012, 04:44:02 am
Habe jetzt BD237 in Darlington-Schaltung mit Schutzwiderständen und Freilaufdioden und das läuft. :-)

Beim nächsten Mal, werde ich dann wohl auf andere Transistoren zurückgreifen...
32  International / Deutsch / BD237 schaltet nicht durch on: December 08, 2012, 07:12:35 am
Hallo!
Ich möchte BD237 NPN-Transistoren als Schalter nutzen.

Verkabelung ist korrekt, wenn ich allerdings 5 Volt an die Basis anlege (Arduino-Ausgang auf HIGH), dann schaltet der Transistor nicht durch (5V, max. 2A).

Hab ich irgendwas vergessen, muss irgendwas zwischen Arduino-Ausgang und Basis?

Danke!
33  International / Deutsch / Re: Uno ohne externen Quarz betreiben - geht das? on: November 25, 2012, 01:33:48 pm
Ok, ich organisier mir lieber einen Quarz, daran soll es jetzt auch nicht mehr scheitern... ;-D

Ist dann auch komfortabler zu handhaben...
34  International / Deutsch / Re: Uno ohne externen Quarz betreiben - geht das? on: November 25, 2012, 07:47:07 am
Hm, ich habe einen USBtinyISP von ebay, damit sollte das ja gehen.

Kennt jemand eine gute Anleitung für die Programmierung mit ISP und die Freischaltung des Quarzes?
35  International / Deutsch / Uno ohne externen Quarz betreiben - geht das? on: November 24, 2012, 07:43:32 pm
Hallo!
Der Titel verrät bereits worum es geht.

Ich möchte den ATMEGA 328 von meinem Board nehmen und ihn in eine Schaltung einsetzen. In dieser Schaltung ist kein Quarz vorgesehen.

Theoretisch sollte dann ja der interne 8 MHz Oszillator des Chips greifen, ich habe aber irgendwo gelesen, das würde bei Unos nicht funktionieren, weil das nicht im Bootloader aktiviert wäre oder sowas.

Entspricht das der Realität oder ist das ohne externen Quarz kein Problem?
Meine Anwendung ist nicht zeitkritisch, benötigt aber PWM-Signale. Ist da mit Einschränkungen zu rechnen?

Und gibt es andere Möglichkeiten, außer einen Quarz einzubauen? Ich habe auch irgendwo gelesen, dass die Duemilanove im Bootloader nicht den internen Quarz deaktiviert hatten. Ich könnte also meinem Uno-Chip einen neuen Bootloader verpassen und das wärs?!?

Danke!
36  International / Deutsch / Re: Nokia 3310 Display - Keine Ausgabe, kein gar nix on: June 16, 2012, 07:28:43 am
Kurzes Feedback.

Nachdem ich jetzt den Pegelwandler rausgenommen habe, funktioniert das Display.
Problem ist also eingegrenzt und ich werde mich dieses Bauteiles annehmen. :-)

Rückmeldung folgt. ;-D
37  International / Deutsch / Nokia 3310 Display - Keine Ausgabe, kein gar nix on: June 15, 2012, 07:55:17 pm
Hallo!
Vielleicht bin ich übermüdet und finde deshalb nix, aber ich bekomm hier so ein Nokia 3310/5110-Display gerade einfach nicht ans Laufen und dachte ich frag mal, ob irgendwer einen Fehler sieht.

Also, das hier ist im Groben meine Schaltung:

Meine Spannungsversorgung kommt mit ziemlich genau 3,3 Volt aus einem Spannungswandler-IC, das läuft auch sehr gut, wie mir Multimeter und die funktionierende Hintergrundbeleuchtung des LCD anzeigen.

Als IC in der Skizze nutze ich dann einen 74HC4050, um von den 5 Volt des Arduino auf meine 3,3 Volt herunterzukommen. Messungen sagen, dass das ebenfalls klappt.

Dann hab ich mein Display wie folgt (Pinnummern in Klammern) angeschlossen:

Display  ->  74HC4050  ->  Arduino
(3) SCLKI/O 5 (12)(3)
(4) DINI/O 4 (10)(4)
(5) D/CI/O 3 (06)(5)
(6) CSI/O 2 (04)(6)
(7) RSTI/O 1 (02)(7)
Pin 1 des Displays bekommt 3,3 V Versorgungsspannung (aus der gleichen Quelle wie der 74HC4050), Pin 2 liegt auf Masse, der gleichen wie der 74HC4050, der Arduino und die Spannungsversorgung.

Dazu nutze ich folgenden Code:
Code:
#define PIN_SCE   7
#define PIN_RESET 6
#define PIN_DC    5
#define PIN_SDIN  4
#define PIN_SCLK  3

#define LCD_C     LOW
#define LCD_D     HIGH

#define LCD_X     84
#define LCD_Y     48

static const byte ASCII[][5] ={
 {0x00, 0x00, 0x00, 0x00, 0x00} // 20 
,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 "
,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 #
,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $
,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 %
,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 &
,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 '
,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 (
,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 )
,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a *
,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b +
,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c ,
,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d -
,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e .
,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f /
,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0
,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1
,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2
,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3
,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4
,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5
,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6
,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7
,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8
,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9
,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a :
,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ;
,{0x00, 0x08, 0x1c, 0x3e, 0x7f} // 3c <  modifiziert, ausgefuellter pfeil
,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d =
,{0x7f, 0x3e, 0x1c, 0x08, 0x00} // 3e >  modifiziert, ausgefuellter pfeil
,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ?
,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @
,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A
,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B
,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C
,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D
,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E
,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F
,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G
,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H
,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I
,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J
,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K
,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L
,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M
,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N
,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O
,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P
,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q
,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R
,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S
,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T
,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U
,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V
,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W
,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X
,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y
,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z
,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [
,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c ¥
,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ]
,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^
,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _
,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 `
,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a
,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b
,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c
,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d
,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e
,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f
,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g
,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h
,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i
,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j
,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k
,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l
,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m
,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n
,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o
,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p
,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q
,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r
,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s
,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t
,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u
,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v
,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w
,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x
,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y
,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z
,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b {
,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c |
,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d }
,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ←
,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f →
};

/* cursor an x und y position setzen

x: 0 bis 84
y: 0 bis 5

*/
void gotoXY(int x, int y)
{
  LcdWrite( 0, 0x80 | x);  // Column.
  LcdWrite( 0, 0x40 | y);  // Row.  ?
}

// gibt ein bild aus, speicherung als array
void LcdBmp(char my_array[])
{
  for (int index = 0; index < 504; index++)
  {
    LcdWrite(LCD_D, my_array[index]);
  }
}

// einzelnes zeichen ausgeben
void LcdCharacter(char character)
{
  LcdWrite(LCD_D, 0x00);
  for (int index = 0; index < 5; index++)
  {
    LcdWrite(LCD_D, ASCII[character - 0x20][index]);
  }
  LcdWrite(LCD_D, 0x00);
}

// gibt einen string an der cursorposition aus
void LcdString(char *characters)
{
  while (*characters)
  {
    LcdCharacter(*characters++);
  }
}

// loescht den gesamten bildschirm
void LcdClear(void)
{
  for (int index = 0; index < LCD_X * LCD_Y / 8; index++)
  {
    LcdWrite(LCD_D, 0x00);
  }
}

// funktion um das display zu initialisieren
void LcdInitialise(void)
{
  pinMode(PIN_SCE, OUTPUT);
  pinMode(PIN_RESET, OUTPUT);
  pinMode(PIN_DC, OUTPUT);
  pinMode(PIN_SDIN, OUTPUT);
  pinMode(PIN_SCLK, OUTPUT);
  digitalWrite(PIN_RESET, LOW);
  digitalWrite(PIN_RESET, HIGH);
 
  LcdWrite( LCD_C, 0x21 ); // LCD Extended Commands.
  LcdWrite( LCD_C, 0xB1 ); // Set LCD Vop (Contrast). //B1
  LcdWrite( LCD_C, 0x04 ); // Set Temp coefficent. //0x04
  LcdWrite( LCD_C, 0x14 ); // LCD bias mode 1:48. //0x13
  LcdWrite( LCD_C, 0x0C ); // LCD in normal mode. 0x0d for inverse
 
  LcdWrite(LCD_C, 0x20);
  LcdWrite(LCD_C, 0x0C);
}

void LcdWrite(byte dc, byte data)
{
  digitalWrite(PIN_DC, dc);
  digitalWrite(PIN_SCE, LOW);
  shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data);
  digitalWrite(PIN_SCE, HIGH);
}

void setup(void)
{
  LcdInitialise();
  LcdClear();
}

void loop(void)
{
  LcdInitialise();
  LcdClear();
  gotoXY(0,2);
  LcdString("Test-Output");
  delay(5000);
 
}
Der entspricht im Großen und Ganzen diesem Beispielcode.

Allerdings tut sich sowohl mit Beispielcode als auch mit meinem gar nix auf dem Display. Hat irgendwer zufällig noch was zur Hand oder sieht einen offensichtlichen Fehler?

Danke!
38  International / Deutsch / Re: Forums Bezeichnungen on: June 15, 2012, 07:04:27 pm
Exakt, die Staffelungen können in der Forumssoftware hinterlegt werden und werden dann automatisch gehandhabt...
39  International / Deutsch / Unipolaren Schrittmotor ansteuern - Komische Aderbelegung on: March 30, 2012, 06:09:27 am
Hallo!
Ich habe einen Schrittmotor aus einem Scanner auf dem lediglich "5 Volt" steht.
Kein Hersteller, keine Typenbezeichnung, kein gar nix.

Es handelt sich um einen unipolaren Schrittmotor mit gemeinsamer Masse, also insgesamt 5 Adern. Die gemeinsame Ader ließ sich mit einem Multimeter leicht finden.

Nun gehts an die Ansteuerung. Dazu habe ich ~5,5 Volt Spannung mit 1,2 A maximaler Stromstärke zur Verfügung stehen (da der Scanner rein über USB betrieben wurde dürfte der Motor wohl weitaus weniger Strom aufnehmen).
Ich habe vier Transistoren, deren Basen ich über meinen Arduino schalte. Im Prinzip also das, was auch ein Schrittmotortreiber macht...

Nun bekomm ich das Ding einfach nicht bewegt mit den Beispielprogrammen etc. und hab gedacht, dann mach ich das halt "von Hand".

Dabei ist mir ein komisches Verhalten aufgefallen.
Ich habe vier "Daten"adern. Orange, Gelb, Braun und Schwarz.

Verbinde ich abwechselnd Orange und Gelb, dann läuft der Motor vorwärts, das Gleiche mit Braun und Schwarz und ich habe den "Rückwärtsgang", der Motor dreht in die andere Richtung.

Das verwundert mich, weil ich dachte, ich müsste alle vier Adern abwechselnd bzw. immer zwei zusammen bestromen und dann würde sich der Motor drehen.

Momentan lasse ich das also nur mit Orange und Gelb laufen, frage mich allerdings ob das richtig so ist, oder ob ich irgendwas falsch verschaltet habe. Klar, es läuft, aber zwei Adern für einen Vorwärts-, zwei für den Rückwärtsgang, das finde ich komisch...
40  International / Deutsch / Re: Spannungszusammenbruch mit 7805 ICs on: March 06, 2012, 05:16:12 pm
Vorhin wurden mir da nur zwei, drei Ladegeräte angezeigt und die lagen alle deutlich darüber.

Liegt vermutlich daran, dass ich Europa ausgewählt hatte...
41  International / Deutsch / Re: Spannungszusammenbruch mit 7805 ICs on: March 06, 2012, 07:50:25 am
Hallo!
So, ich hab mich mal bei Hobbyking umgeschaut und das schaut ganz gut aus.
Auch wenn mir die Bezeichungen (20C ?!?!) noch nicht wirklich eingängig sind, denke ich, dass dieser Akku hier für mein Projekt geeignet sein könnte.
2 Zellen (also 7,4 Volt) sollten reichen, dann müssen die Regler auch nicht soooo viel Wärme erzeugen und in das bisherige Gehäuse würde das auch schön reinpassen.

Fürs Laden benötige ich dann ja spezielle Ladegeräte, bei Hobbyking sind die allerdings recht teuer, weil die zig Akkutypen laden können.
Könnte ich auch für ~15 Euro ein Ladegerät kaufen, das nur 2 oder 3 Zellen-Akkus laden kann oder sind da Probleme zu erwarten?

Danke!
42  International / Deutsch / Re: Spannungszusammenbruch mit 7805 ICs on: February 16, 2012, 04:54:49 am
Nein, die Servos laufen nicht parallel. Ich hab die Regler auch für jeden einzeln ausgelegt, damit die längere Zeit zum Runterkühlen haben, auch wenn die ganze Sache nicht zeitkritisch ist.

Ansonsten geh ich erstmal ein paar Dioden organisieren... O_O"
43  International / Deutsch / Re: Spannungszusammenbruch mit 7805 ICs on: February 15, 2012, 08:43:35 pm
Hallo!
Vielen Dank für all eure Antworten und Entschuldigung für meine späte selbige.

Als Spannungsregler nutze ich den L78S05 (Datenblatt meines Typs), der sollte also duchaus 2 A (nicht nur als Spitzenlast) liefern.

Tendenziell scheitert es also vermutlich eher an den Akkus, die zusammenbrechen. Leider sitze ich in diesem Moment 180 km von denen entfernt, wenn ich nach Hause komme, werde ich mal die Spannung bei vollgeladenen Akkus messen.
Ich hab das die Tage schonmal gemacht und da lag sie bei 7,28 Volt, wenn ich mich recht erinnere.

Zu den Servos: Das sind "Towerpro MG995".
Die haben bis zu 10 kg/cm Stellmoment und fallen für mich damit durchaus unter größere Servos. Eventuell kann ich im Projekt doch noch kleinere Servos verwenden, das wird sich zeigen, ich gehe aber erstmal nicht davon aus.

Den Einsatz eines Netzteiles möchte ich eigentlich vermeiden, wenn es sich mit Akkus/Batterien erledigen lässt. Natürlich ist dann nur eine begrenzte Anzahl an Schritten möglich, das ist klar. Aber so ganz übel sind Akkus ja heutzutage auch nicht drauf.
Wenn ich "echte" Spannungswandler einsetze, lässt sich die Sache dann in den Griff bekommen?

Schutzdioden hab ich übrigens nicht verbaut. Hab darüber in den Datenblättern nix gelesen und ging davon aus, dass die Regler schlicht nicht funktionieren, wenn Vin zu klein ist.

Danke!
44  International / Deutsch / Spannungszusammenbruch mit 7805 ICs on: February 11, 2012, 10:11:21 pm
Hallo!
Ich arbeite gerade am elektrischen Teil eines Projektes (dazu hoffentlich bald mehr) und da tun sich jetzt Probleme auf, die ich mal hier beschreiben möchte. Vielleicht fällt einem ja eine Lösung dafür ein...

Das Projekt verfügt über ein Display zur Anzeige verschiedener Daten und muss zwei größere Servos steuern (Leerlauf etwa 600 mA Stromaufnahme, unter Last vielleicht das Doppelte). Natürlich gehört dazu auch ein Arduino zur Steuerung und Datenverarbeitung/-ausgabe. Genau genommen soll am Ende der ATMEGA-Chip natürlich alleine auf der Platine ruhen, ohne das Arduino-Board drumherum.

Die Spannung für dieses System stelle ich über 6 Stück AA Akkus/Batterien zur Verfügung. Das sind dann 7,2 oder 9 Volt. Ich nutze Spannungwandler vom Typ 7805 (für den ATMEGA), zwei 78S05 (liefern max. 2 A - für die Servos) und einen LD1117V33 (Display) um entsprechende Spannungen und Ströme zur Verfügung zu stellen.
Die Spannungswandler sind entsprechend ihrer Datenblätter beschaltet und haben zudem noch ein- und ausgangsseitig 10 µF ELKOs zur Stabilisierung bzw. gegen Schwingungen des Systems bekommen.

Zum Testen habe ich nun meinen Arduino mit dem 7805 über Vin verbunden (Korrektur: Habe den Arduino direkt mit der Spannungsquelle verbunden, weil sonst die Eingangsspannung zu niedrig ist, klar) und so mit Strom versorgt. Einer der Servos ist angeschlossen und bewegt sich im 2,5 Sekunden Takt von 20° nach 120° und zurück. Das Display ist angeschlossen, wird aber nicht angesteuert sondern nur hintergrundbeleuchtet.

Messungen am Ausgang der 7805er-ICs zeigen, dass dort die Spannung enorm zusammenbricht, sobald der Arduino sein Steuersignal sendet und der Servo sich bewegt. Wenn nun der Arduino dort hinge, dann würde das System wohl "kollabieren". Interessanterweise bleibt die Spannung am LD1117V33 stabil, vermutlich weil die Spannung des Akkupaketes noch ausreichend hoch ist und deutlich über der Schwellenspannung liegt.

Ich schiebe das Problem gerade auf die nicht ganz vollen Akkus, die ich in diesem Moment ins Ladegerät geschickt habe. Mir ist auch bewusst, dass diese großen Servos im Hinblick auf ihren Energieverbrauch ein echtes Problem darstellen. Das lässt sich vielleicht zu einem späteren Zeitpunkt mal durch einen größeren Akku oder eine Stromversorgung über ein Netzteil lösen, für den Moment soll es allerdings so funktionieren.

Fallen jemandem Möglichkeiten ein, den Stromverbrauch zu reduzieren und das Ganze effizienter zu machen? Sind schwache Akkus überhaupt das Problem oder sind die Akkus zu "träge" für diesen spontanen Energieverbrauch?

DANKE!
45  International / Deutsch / Re: Arduino per Funk an zwei Arduino on: February 09, 2012, 12:10:57 pm
Kann man mit diesen Modulen auch so etwas wie einen Broadcast durchführen?

Mein Sender-Arduino sendet alle 2 Sekunden 2 Byte raus in die nahe Welt und meine Empfänger-Arduinos lauschen auf diese Signale?
Pages: 1 2 [3] 4 5 ... 12