[Casecon] Light Glass [Worklog]

779x467.jpg
 
Zuletzt bearbeitet:
Alter Schwede!!
Wat soll ick da noch sagen!

Bin mittler weile in knapp 10 Foren mit meinen Projekten aktiv.
PCGH war meine erste Wahl (letztes Jahr) und meine beste. ;-)

Noname dein Brief kam heute schon an, super Vielen Vielen Dank nochmal.

Wir müssen hier echt mal etwas runterschalten ich komm gar nich mit xD.
Musste Weekend schon den Log durchwühlen weil ich nach nem Tip von eich gesucht habe.

Also Madpygon: Mit Sachen die ich brauche meinte ich nur die Sirene und den N-Kanal Transistor. Die Digitelen Leds sind komplett einzeln bestückt und man kann sie auch nach jeder Led abschneiden. Nicht so wie bei herkömmlichen alle 3 oder 6 Leds. Gut die Fast Led Bibo muss ich noch besorgen, hatte letzten nur mal die von adafruit installiert.

Noname; Ja mein Ansatz war schon richtig, ich dachte mir auch einfach nur nen LOW befehl zum schluss setzten damit der Motor ausgeht hat aber nich gefunzt. Deine Sketche werd ich jetzt durchgehen, sieht vielversprechend und selbstredend aus.
Relais: ersten fand ich nirgends einen eindeutigen Hinweis wie ist die Motorseite überhaupt schalten soll, also was die 3 Kanäle überhaupt bedeuten, Anschluss am Arduino ist klar.
Dann denk ich mal das mein sketch nicht richtig gearbeitet hat, er sollte glaub in 2 Sek Takt schalten aber laut Messgerät gab es keine Änderungen an den Ausgängen. Ich teste das nochmal mit deinen Infos.

Noname nächster Post: Das hört sich mal geil an mit dem Tastenfeld, Code eingeben und dann nimmt jede Taste befehle an.
Boah es führt kein Weg dran vorbei ich muss die Sprache richtig beherschen, ich glaub wrnn ich deine 2 Motorsketche durch habe bin ich um einiges schlauer.Zumal du mir ja beide Varianten erörterst wo ich halt jetzt immer durcheinander gekommen bin.

Madpygon: Ich persöhnlich würde es mir nicht zumuten xd aber da mir letztens schon die Codes im Schlaf um die Ohren geflogen sind und mir bei jeden neuen Sketch auch wieder ein Licht aufgeht, gibts kein Zurück mehr "denn ich bin ganz nah dran"(gibt nen Lied von dem Spruch, cassandra steen"Küss den Frosch" gefällt mir;) )


Neuland für uns??? Hahaha ich glaub ich und Leon sind hier die einzigen die nur Bahnhof verstehen, mit dem Unterschied er ist halb so alt wie ich:D

So mein Original Arduino Uno kam am Montag auch ein Ersatz Nano ist auch auf dem Weg zu mir. Ein heimlicher Mitleser "derTino" war auch so lieb uns zu unterstützen und schickt mir einen zu.
Hardwarepacket ist immernoch nicht da, ist momentan auch voll ungünstig da ich lieber bei der Sache bleibe bevor ich mich anderen Aufgaben zuwende. Leider muss ich natürlich sobald die Hardware da ist die restlichen Bestellungen für Wakü und Kabel/Sleeve tätigen.
Da geht dann auch mal schnell ein Abend verloren abgesehen von Fotosession und Worklogs updaten.
Ich will das Msi Z170 Titaniu endlich live sehen.
Es wirkt auf allen Fotos immer so silber, titanium ist aber eher ein dunkleres grau. Dann erst werden ich mich für passende Sleevs entscheiden und wir können uns überlegen welche Farb kombo ich nehme. Zum Großteil weiß aber ein zwei grau siberne linen sehen bestimmt auch Hammer aus.

Gut ihr habt mir mächtig arbeit für heut abend gegeben, ich glaube schlafen fällt aus. :-)
 
hehe, mit dem runterschalten könnteste recht haben...

Noname; Ja mein Ansatz war schon richtig, ich dachte mir auch einfach nur nen LOW befehl zum schluss setzten damit der Motor ausgeht hat aber nich gefunzt. Deine Sketche werd ich jetzt durchgehen, sieht vielversprechend und selbstredend aus.
Relais: ersten fand ich nirgends einen eindeutigen Hinweis wie ist die Motorseite überhaupt schalten soll, also was die 3 Kanäle überhaupt bedeuten, Anschluss am Arduino ist klar.
Dann denk ich mal das mein sketch nicht richtig gearbeitet hat, er sollte glaub in 2 Sek Takt schalten aber laut Messgerät gab es keine Änderungen an den Ausgängen. Ich teste das nochmal mit deinen Infos.

verdammt, das mit dem LOW Befehlt wär auch zu einfach gewesen.
Welches Relais hast du denn genau? Dann schau ich mir das heute Abend nochmal an und schreib dir ein Testscript.
 
Yeeeeahh!

Naja klar schreib doch einfach: :lol::lol:

Ich würde vorschlagen nach dem Bewegen vom Motor einen MotorAus Befehlt zu senden mit
Code:
MotorAus();
Folgenden Code dann noch nach dem Loop einfügen:
Code:
 void MotorAus (){
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
Würde interessieren, ob die Leds danach noch leuchten und ob der Treiber weiter heiß wird. Und auch das Verhalten des restlichen Codes, also ob der Motor dann noch angeht...

1. Versuch :daumen2::wall:
2. Versuch :daumen2::wall:
verdammt wieder falsche Zeile erwischt :ugly:

hab etwas gebraucht aber es geht. Nach etwas probieren hab ich dann die richtigen Zeilen erwischt.

So siehts aus:

Code:
#include "Stepper.h"
#include "IRremote.h"

/*----- Variables, Pins -----*/
#define STEPS  32   // Number of steps per revolution of Internal shaft
int  Steps2Take;  // 2048 = 1 Revolution
int receiver = 6; // Signal Pin of IR receiver to Arduino Digital Pin 6

/*-----( Declare objects )-----*/
// Setup of proper sequencing for Motor Driver Pins
// In1, In2, In3, In4 in the sequence 1-3-2-4

Stepper small_stepper(STEPS, 8, 10, 9, 11);
IRrecv irrecv(receiver);    // create instance of 'irrecv'
decode_results results;     // create instance of 'decode_results'

void setup()
{ 
  irrecv.enableIRIn(); // Start the receiver

}

void loop()
{
if (irrecv.decode(&results)) // have we received an IR signal?

  {
    switch(results.value)

    {
 
      case 16761405: // forward pressed
                     
                      small_stepper.setSpeed(700); //Max seems to be 700
                      Steps2Take  =  8192;  // Rotate CW
                      small_stepper.step(Steps2Take); 
                      break;
                     
      case 16712445: // backwards pressed
                    
                      small_stepper.setSpeed(700);
                      Steps2Take  =  -8192;  // Rotate CCW
                      small_stepper.step(Steps2Take); 
                      break;
                      
    }
       MotorAus();
      irrecv.resume(); // receive the next value
  }  
}
void MotorAus ()
{
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
/* --end main loop -- */

Alle 4 Lampen gehen aus und er nimmt danach auch wieder jeden Befehl per FB an.:hail:
Speed läuft bei 1000 am schnellsten und ob 5V oder 12V spielt keine Rolle, kommt aufs selbe raus außer das der Treiber bei 12V schon während des Loop heiß wird.
Hab bisher immer mit 5V getestet da mir schon 3/5 Treibern abgeraucht sind. So lass ichs dann auch.
Gut abspeichern, jetzt test ich noch deine anderen Sketche bzw, lese mir das alles nochmal richtig durch.;)
 
Wir müssen hier echt mal etwas runterschalten ich komm gar nich mit xD.
Musste Weekend schon den Log durchwühlen weil ich nach nem Tip von eich gesucht habe.

Madpygon: Ich persöhnlich würde es mir nicht zumuten xd aber da mir letztens schon die Codes im Schlaf um die Ohren geflogen sind und mir bei jeden neuen Sketch auch wieder ein Licht aufgeht, gibts kein Zurück mehr "denn ich bin ganz nah dran"(gibt nen Lied von dem Spruch, cassandra steen"Küss den Frosch" gefällt mir;) )

Neuland für uns??? Hahaha ich glaub ich und Leon sind hier die einzigen die nur Bahnhof verstehen, mit dem Unterschied er ist halb so alt wie ich:D
Ich kann mich halt so schwer zurück halten :D

Gibt ein Forum das heißt dreamincode.net :ugly:

Na dann auf zu neuen Ufern :lol:
 
das ging ja schnell, das der Brief angekommen ist... Die Schieberegister heißen übrigens 74hc595. So wie sich das Projekt gerade entwickelt kannste die noch brauchen ;)

Alle 4 Lampen gehen aus und er nimmt danach auch wieder jeden Befehl per FB an.:hail:

Yeaaa!!! Das doch schon mal super :) Werden die Treiber denn danach immer noch heiß?

Bei den anderen zwei Skriten bin ich echt gespannt ob du den Motor damit ans laufen bekommst. Aus der Ferne ohne die Hardware etwas zu schreiben hatte ich bisher auch noch nicht.
 
Ähm na ohne Strom sollt ja nix mehr heiß werden und nein werden sie auch nicht.
Ist immer ein blödes Testen, man merkt es erst wenn man sich die Finger verbrannt hat. :ugly:

HA-HA-HA ick kotz hier voll ab und jetzt kommst du so.:hmm:

Ick verzweifle hier voll.
Beim ersten Sketch hab ich die Treiber LEDs mal kurz aufblitzen sehen(2 davon), mehr aber nicht, vermutlich schaltet er sie sofort wieder aus.
Bevor ich da weiter mit delays probiere habe ich nach und nach die disable und false Befehle gelöscht aber ohne Erfolg.
Nach ner Stunde bin ich dann demotiviert zum zweiten Sketch gesprungen, da der aufgrund des Tastenfeldes ja interessanter für mich ist aber auch da geht nix.
Die AccelStepper.h definiert die Ausgänge ja auf Default(2,3,4,5), nimmt die 8,8,9,10,11 gar nicht an auch ohne die erste 8.
Habs einfach gelöscht und auf 2,3,4,5 umgesteckt aber er nervt nur beim kompilieren.
Dieses "was not declared in this scope" und jenes "was not declared in this scope"
Versuch mir die ganze Zeit mit den Beispielen etwas zu basteln aber dat is alles schon wieder total anders. Mit maxspeed, moveto, setacceleration.
Soll ich dir was sagen? Mir gefällt die AccelStepper.h nicht.:ugly:
Ich will meine Steps zurück, so lässt sich für mich später auch am einfachsten das öffnen und schließen einstellen.
 
Noname , na dieser hier war im Starterkit mit bei:

Anhang anzeigen 880849

Grad nochmal kurz Zeit gehabt :)
Schön, dass die Ausgänge nicht beschriftet sind... Folgendes hab ich gefunden:
Wenn man auf das Schrauben Terminal schaut, Relais Seite oben, dann ist von links nach rechts,
1 = Normal Offen
2 = Ground
2 = Normal Zu

Wenn man den Signalpin auf LOW hat, dann tritt der Normal Zustand ein. Ans sich würd ich das aber einfach ausprobieren welche Seite du haben willst. Einmal die Mitte anstöppseln und die andere Seite aussuchen.

Code:
int relayPin1 = 7;                 // Hier den Signal Pin eintragen

void setup()
{
pinMode(relayPin1, OUTPUT);      // sets the digital pin as output
digitalWrite(relayPin1, HIGH);        // Prevents relays from starting up engaged
}

void loop()
{
digitalWrite(relayPin1, LOW);   // energizes the relay and lights the LED
delay(1000);                  // waits for a second
digitalWrite(relayPin1, HIGH);    // de-energizes the relay and LED is off
delay(1000);                  // waits for a second
}

Damit müsste das Ding eigentlich im Sekundentakt schalten. Außerdem müsste auf dem Board ein LED sein die leuchtet, bzw. an und ausgeht.
 
Ick verzweifle hier voll.
Beim ersten Sketch hab ich die Treiber LEDs mal kurz aufblitzen sehen(2 davon), mehr aber nicht, vermutlich schaltet er sie sofort wieder aus.
Bevor ich da weiter mit delays probiere habe ich nach und nach die disable und false Befehle gelöscht aber ohne Erfolg.
Nach ner Stunde bin ich dann demotiviert zum zweiten Sketch gesprungen, da der aufgrund des Tastenfeldes ja interessanter für mich ist aber auch da geht nix.
Die AccelStepper.h definiert die Ausgänge ja auf Default(2,3,4,5), nimmt die 8,8,9,10,11 gar nicht an auch ohne die erste 8.
Habs einfach gelöscht und auf 2,3,4,5 umgesteckt aber er nervt nur beim kompilieren.
Dieses "was not declared in this scope" und jenes "was not declared in this scope"
Versuch mir die ganze Zeit mit den Beispielen etwas zu basteln aber dat is alles schon wieder total anders. Mit maxspeed, moveto, setacceleration.
Soll ich dir was sagen? Mir gefällt die AccelStepper.h nicht.:ugly:
Ich will meine Steps zurück, so lässt sich für mich später auch am einfachsten das öffnen und schließen einstellen.

Die erste 8 brauchste auf jeden Fall, ohne die fehlt der Modus der Instanz. Und so wie ich die Beispiel verstanden hatte muss man da auch mit dem verdrehten Pinmuster arbeiten. Also 1 3 2 4 bzw. 8 10 9 11. Am Breadboard darfst du das natürlich nicht mitdrehen ;)
Wenn du das false rausnimmst dran denken die Zeile 21 (disableOutputs) wieder reinnehmen.
Oder alternativ mal das ganze disable/enable Zeug rausnehmen. das war für den Anfang vielleicht schon zu verspielt...

Von dem Funktionsumfang der Bibliothek würd ich mich nicht abschrecken lassen. Das meiste brauch man nicht. Mit setspeed() und run() kommt man schon sehr sehr weit.
 
Mal was anderes, ich will gerade für deinen 2. Sketch alles anschließen. Motor 4Pins und Keypad8Pins.
D2-D13 sind 11, fehlt einer:rollen: . Kann ich an die analogen gehen oder funzt das nicht und wie sind deren Adressen?

PS: ups ja sind 12, hab die IR immer mitgezählt das einer fehlt.

PSS: okay die Analogen adressiert man also ab 14 aufwärts, wenn ich da jetzt nix falsches gelesen habe
 
Zuletzt bearbeitet:
Jaaaaaaaa Super, das Keypad ist nun wieder im Spiel!!! :D

David hab deinen Keypad Sketch mit der Stepper.h und dem Abschaltcode kombiniert. IT WORKS!!!! :P

Code:
#include "Stepper.h"
#include "Keypad.h"

/*-----( Declare objects )-----*/
#define STEPS  32   // Number of steps per revolution of Internal shaft
int  Steps2Take;  // 2048 = 1 Revolution
// Setup of proper sequencing for Motor Driver Pins
// In1, In2, In3, In4 in the sequence 1-3-2-4

Stepper small_stepper(STEPS, 10, 12, 11, 13);

//Deklarationen Keypad
const byte numRows= 4; //number of rows on the keypad
const byte numCols= 4; //number of columns on the keypad
 
//keymap defines the key pressed according to the row and columns just as appears on the keypad
char keymap[numRows][numCols]=
{
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
 
//Hier die richtigen Pins eintragen!!! Anschlussgrafik gibt es z.B. hier http://www.learningaboutelectronics.com/Articles/Arduino-keypad-circuit.php
byte rowPins[numRows] = {9,8,7,6}; 
byte colPins[numCols]= {5,4,3,2}; 
 
//initializes an instance of the Keypad class
Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
 

void setup()
{   

}

void loop()
{  
  char keypressed = myKeypad.getKey(); //Tastedruck am Keypad erfassen
 { 
  if (keypressed == 'A')  //Falls der Tastendruck A war dann Tür öffnen usw... Welche Zeichen da tatsächlich empfangen werden müsste über den Seriellen Monitor rausgefunden werden.
                           // und ob die Zeichen um das A stimmen bin ich mir grad nicht sicher, könnte auch sein, dass da "" hin muss....
                       // forward pressed
                     
                     { small_stepper.setSpeed(1000); //Max seems to be 700
                      Steps2Take  =  2048;  // Rotate CW
                      small_stepper.step(Steps2Take); 
                      }
   if (keypressed == 'B')
                      // backwards pressed
                    {
                      small_stepper.setSpeed(1000);
                      Steps2Take  =  -2048;  // Rotate CCW
                      small_stepper.step(Steps2Take); 
                      
 }
   MotorAus();
 }
}/* --end main loop -- */
void MotorAus ()
{
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
 
Jaaaaaaaa Super, das Keypad ist nun wieder im Spiel!!! :D

David hab deinen Keypad Sketch mit der Stepper.h und dem Abschaltcode kombiniert. IT WORKS!!!! :P
Yipieee :) das freut mich sehr zu hören! Dann kann ja die nächste Baustelle kommen ;)

Ich adressiere die Analog Pins immer über das was dransteht, also A0-A7, dann musste beim anschließen nicht umdenken.
 
Du sagst es: "nächste Baustelle".
Bin voll Happy das ich jetzt alles drin habe.
Auf die LEds kann ich ja schlecht verzichten.
A0-A7? Hört sich ja so an als wenn ich sie frei Adressieren kann. Welche Kann man denn nehmen damit der Arduino auch weiß welche er schalten muss. Ich mein ich kann ja nicht 15(A1) nehmen wenn A0(14)gemeint ist?
 
Die digitalen Pins sind adressierbar mit 0-13 (D0 - D13), z.B.
Code:
int ledPin = 4;                 // LED connected to digital pin D4

void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}

die analogen Pins A0-A5 kann man mit 14-19 adressieren (A6 und A7 lassen sich nicht als digitale I/O Pins nuten), z.B.
Code:
int ledPin = 14;                 // LED connected to A0

void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}
 
A0-A7? Hört sich ja so an als wenn ich sie frei Adressieren kann. Welche Kann man denn nehmen damit der Arduino auch weiß welche er schalten muss. Ich mein ich kann ja nicht 15(A1) nehmen wenn A0(14)gemeint ist?

Versteh die Frage glaub ich nicht. Wenn du was an A0 anschließt schreibst du natürlich den entsprechenden Pin in den Code. Du kannst das entweder so machen wie MadPolygon das im zweiten Beispiel geschrieben hat, oder du schreibst eben statt 14 die A0 in den Code.

Code:
int ledPin = A0;                 // LED connected to A0 == 14

void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}
 
Zurück