Show Posts
Pages: 1 2 [3] 4 5 ... 7
31  International / Deutsch / Re: Motor + Sensoren on: April 06, 2013, 01:53:19 pm
Wir wollen Bilder sehen smiley
32  International / Deutsch / Re: continued: Inhalt eines RGB Strips weich überblenden on: February 28, 2013, 11:11:18 am
Schon mal überlegt den Fade im HSV Farbraum zu machen? Da geht das um einiges einfacher, da nur ein Wert für die Farbinformation verändert werden muss und nicht wie bei RGB 3 Stück.
33  International / Deutsch / Re: Ikea Dioder - Ansteuerung mit iPhone/iPad/Android on: February 11, 2013, 01:23:38 pm
Vorher waren die 12V nur direkt an der Beleuchtung angeschlossen und nur die Masse vom Netzteil am Mega. Der Mega wurde über USB versorgt.
34  International / Deutsch / Ikea Dioder - Ansteuerung mit iPhone/iPad/Android on: February 11, 2013, 11:28:34 am
Quote
PROBLEM GELÖST.
Vielleicht kann ja jemand den Code nutzen um seine Ikea Dioder mittels OSC zu steuern.


Hallo,

Ich habe vor meine Ikea Dioder leisten mit einem Arduino und mehreren ULN2003A zu steuern.

Angeschlossen habe ich sie nach folgenden Schema auf einer Webseite: http://ikennd.ac/blog/2011/09/arduino-dioder-part-one/

Immer wenn ich versuche eine weiße Farbe einzustellen, also alle Werte für Rot, grün und blau dann leuchten sie nur ganz schwach. Hat jemand eine Idee? Liegt es am ULN2003A? Angeschlossen ist das ganze an einen Arduino Mega mit Ethernet Shield an den Pins 2-4.

Code:
/***************************************/
/*libraries*/
/***************************************/
#include <SPI.h>
#include <Ethernet.h>
#include <ArdOSC.h>

/***************************************/
/*defines*/
/***************************************/
#define SERVER_PORT 9000
#define DESTINATION_PORT 8000
#define PIN_R 2
#define PIN_G 3
#define PIN_B 4

/***************************************/
/*variables*/
/***************************************/
OSCServer server;
OSCClient client;

byte myMac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte myIp[]  = {192, 168, 1, 177};

int rgb_r=0;
int rgb_g=0;
int rgb_b=0;

int hsv_h=0;
int hsv_s=255;
int hsv_v=0;

/***************************************/
/*setup*/
/***************************************/
void setup(){

  //start serial
  Serial.begin(115200);

  //set pin modes
  pinMode(PIN_R, OUTPUT);  
  pinMode(PIN_G, OUTPUT);
  pinMode(PIN_B, OUTPUT);
  
  //start ethernet
  Ethernet.begin(myMac ,myIp);

  //start OSC server
  server.begin(SERVER_PORT);

  //set callback function & oscaddress
  server.addCallback("/1/push1",&func_onoff);
  server.addCallback("/1/hue",&func_hue);
  server.addCallback("/1/saturation",&func_saturation);
  server.addCallback("/1/value",&func_value);
}

/***************************************/
/*loop for ever*/
/***************************************/
void loop(){
  if(server.aviableCheck()>0){
    //Serial.println("alive! ");
  }
  
  HSV2RGB(hsv_h, hsv_s, hsv_v, rgb_r, rgb_g, rgb_b);
  setLedColor(rgb_r, rgb_g, rgb_b);
}

/***************************************/
/*additional functions*/
/***************************************/
void setLedColor(int red, int green, int blue) {
  analogWrite(PIN_R,red);
  analogWrite(PIN_G,green);
  analogWrite(PIN_B,blue);
}

// hue         0...360
// saturation  0...255
// value       0...255
void HSV2RGB(int h, double s, double v, int &r_int, int &g_int, int &b_int) {
  double r=0;
  double g=0;
  double b=0;

  if(s==0)
  {
    r_int = v;
    g_int = v;
    b_int = v;
    return;
  }
  
  s /= 255;
  v /= 255;

  double hf=h/60.0;

  int i=(int)floor(h/60.0);
  double f = h/60.0 - i;
  double pv = v * (1 - s);
  double qv = v * (1 - s*f);
  double tv = v * (1 - s*(1 - f));

  switch (i)
  {
  case 0:
    r = v;
    g = tv;
    b = pv;
    break;
  case 1:
    r = qv;
    g = v;
    b = pv;
    break;
  case 2:
    r = pv;
    g = v;
    b = tv;
    break;
  case 3:
    r = pv;
    g = qv;
    b = v;
    break;
  case 4:
    r = tv;
    g = pv;
    b = v;
    break;
  case 5:
    r = v;
    g = pv;
    b = qv;
    break;
  }

  r_int=constrain((int)255*r,0,255);
  g_int=constrain((int)255*g,0,255);
  b_int=constrain((int)255*b,0,255);
}



EDIT:

Ich hab jetzt nochmal getestet. Immer wenn ich 3 PWM Ausgänge am Megaansteuere werden alle 3 relativ schwach wenn der gesetzte Wert überall gleich ist.
Setze ich unterschiedliche PWM Werte (50,60,70) setzt immer dejenige Pin aus der den geringen PWM Wert erhält. Kann es sein das mein Mega ein Problem hat oder ist es ein generelles Problem?

EDIT2:

Ich konnte das Problem lösen, indem ich 12V an den Vin Pin angelegt habe. Scheinbar bricht die Spannung teilweise zusammen wenn 3 Pins auf HIGH gesetzt werden.
35  International / Deutsch / Abgesetzte Antenne on: December 09, 2012, 08:19:44 am
Hallo,

Ich benötige mal eure Elektronikkenntnisse.

Ich habe mir jetzt hier eine Steuerung für meine Funktsteckdosen gebaut. Ich würde das ganze gerne in ein Gehäuse bauen.

Jetzt ist die Frage, was macht man mit der Antenne? Kann ich die Antenne irgendwie abgesetzt an der Außerseite vom Gehäuse anbringen? Muss ich dafür nur einen isolierten Draht nehmen und die passende Länge am Ende abisolieren?

Vielen Dank schonmal für eure Hilfe.
Stefan
36  International / Deutsch / Re: homecontrol4me sprengt Arduino Uno on: December 09, 2012, 07:14:45 am
Also ich hatte das gleiche Problem auch. Ich konnte es lösen, indem ich auf einen Arduino Uno R3 umgestiegen bin. Der Uno mit R1 konnte sich auch nicht bespielen lassen.
37  International / Deutsch / Re: SoftwareSerial - Pins verändern on: July 15, 2012, 11:48:17 am
Es über einen Pointer zu machen ist natürlich auch eine gute Variante. Ich glaube das werde ich direkt so von dir übernehmen wenn du gestattest.
38  International / Deutsch / Re: SoftwareSerial - Pins verändern on: July 15, 2012, 11:44:49 am
Was ich vor habe ist, dass wenn der Benutzer meine Library verwendet er beim Initialisieren der Klasse, die Pins übergeben kann, die genutzt werden für die SoftwareSerial.

Ich möchte ungerne feste Werte innerhalb der Lib verwenden.
39  International / Deutsch / SoftwareSerial - Pins verändern on: July 15, 2012, 10:34:56 am
Hallo,

Gibt es eine Möglichkeit die Pins für ein SoftwareSerial zur Laufzeit zuändern?

Derzeit nutze ich folgenden Codeschnipsel in einer Library:

Code:
#include "Arduino.h"
#include "MaestroServo.h"
#include "SoftwareSerial.h"

SoftwareSerial maestroSerial(3, 4);

MaestroServo::MaestroServo(unsigned char rxPin, unsigned char txPin, int baudRate, unsigned char resetPin, unsigned char commandSendPin)
{
    // start the communication
    maestroSerial.begin(baudRate);
    
    // define pin modes
    pinMode(resetPin, OUTPUT);
    pinMode(commandSendPin, OUTPUT);
    
    // save for later internal use
    _rxPin = rxPin;
    _txPin = txPin;
    _baudRate = baudRate;
    _resetPin = resetPin;
    _commandSendPin = commandSendPin;
}

So richtig weiß ich nur nicht wie ich die SoftwareSerial Pins im Constructor der Klasse verändern kann.

Geht es einfach mit einem:

Code:
SoftwareSerial maestroSerial(rxPin, txPin)

Gruß
Stefan
40  International / Deutsch / Re: Arduino - Pololu Maestro Servo Controlle on: July 15, 2012, 10:31:58 am
Also ich benutze den Micro Maestro zur Zeit parallel am Arduino und PC.

Per USB seh ich die Position und Einstellungen am PC und kann so checken ob der Arduino alles richtig setzt.
41  International / Deutsch / Re: Arduino - Pololu Maestro Servo Controlle on: July 15, 2012, 10:25:30 am
So der erste Draft der Library ist fertig.  smiley-mr-green

Genutzt wird SoftwareSerial und verfügbar ist folgendes:

Code:
   MaestroServo(unsigned char rxPin, unsigned char txPin, int baudRate, unsigned char resetPin, unsigned char commandSendPin);
    void reset();
    
    void set_target(unsigned char servo, unsigned int target);
    void set_target(unsigned char device, unsigned char servo, unsigned int target);
    void set_target_minissc(unsigned char servoNumber, unsigned char servoPosition);
    
    void send_home();
    void send_home(unsigned char device);
    
    void set_speed(unsigned char servo, unsigned int speed);
    void set_speed(unsigned char device, unsigned char servo, unsigned int speed);

    void set_acceleration(unsigned char servo, unsigned char acceleration);
    void set_acceleration(unsigned char device, unsigned char servo, unsigned char acceleration);

    void set_servo_off(unsigned char servo);
    void set_servo_off(unsigned char device, unsigned char servo);
    
    char get_moving_state();
    char get_moving_state(unsigned char device);
    
    char get_errors();
    char get_errors(unsigned char device);

Ich denke damit ist schonmal ein guter Baustein gelegt.

Wenn Interesse daran besteht muss ich mir nur noch überlegen wie ich es sinnvoll veröffentlichen kann.
42  International / Deutsch / Re: Arduino - Pololu Maestro Servo Controlle on: July 15, 2012, 05:48:29 am
Das ist genau das was ich mit der Anfrage jetzt vor hatte. Werd mich mal ran setzen heute für einen ersten Draft mit SoftwareSerial.
43  International / Deutsch / Re: Arduino - Pololu Maestro Servo Controlle on: July 15, 2012, 03:32:11 am
Hall.

Danke für deine Hilfe. Hab es gestern dann auch noch gesehen. Auch dass ich ein Problem beim setzen des Reset hatte. Jetzt habe ich 3 Funktionen um das Target zu setzen, einmal MiniSSC, Compact und pololu.

Besteht hier Interesse an einer Bibliothek für den Pololu Servo Controller? Ich konnte bisher noch nichts richtiges finden.
44  International / Deutsch / Arduino - Pololu Maestro Servo Controlle on: July 14, 2012, 10:08:17 am
Hallo,

Hat jemand von euch zufällig den Maestro Servo Controller im Einsatz?

Ich verzweifle hier gerade mit dem Ding. Wenn ich Ihn an den PC anschließe funktioniert alles wunderbar.

Verbinde ich jedoch TX vom Arduino mir RX vom Maestro und nutze die 5V und Masse vom Arduino am Maestro bekomme ich den Servo nicht zum bewegen.

Folgenden Code nutze ich aktuell dafür:

Code:
#include <SoftwareSerial.h>
#define txPin 4
#define rxPin 3

SoftwareSerial mySerial(rxPin, txPin);
void setup()// run once, when the sketch starts
{
  pinMode(7,OUTPUT);
  pinMode(7,HIGH);
  delay(50);
  pinMode(7,LOW);
  
  mySerial.begin(9600);
  delay(1000);  
}

void loop()
{
   delay(1000);
   set_target(0, 8000);
   delay(1000);
   set_target(0, 4000);
}


void set_target(unsigned char servo, unsigned int target)
{
    mySerial.write(0xAA); //start byte
    mySerial.write((byte)0x00); //device id
    mySerial.write(0x84); //command number
    mySerial.write(servo); //servo number
    mySerial.write(target & 0x7F);
    mySerial.write((target >> 7) & 0x7F);
}

Hat jemand einen Tipp für mich?
45  International / Deutsch / Re: 24v Netzteil für HP LEDs on: January 01, 2012, 11:39:59 am
Ich kann nur die guten Stops empfehlen. Damit hatte ich noch nie Probleme und ohne Lüfter und ohne Alles.
Ich belaste die oft mit Spitzen bis an die 10A ran.

http://www.conrad.de/ce/de/product/511069/?insert=U1&hk=WW2&utm_source=epro&utm_medium=seosite&utm_campaign=link&WT.mc_id=epro

Leider auch ein bisschen teurer eben, aufgrund der Qualität.
Pages: 1 2 [3] 4 5 ... 7