Show Posts
Pages: 1 ... 42 43 [44] 45 46 ... 77
646  International / Deutsch / Re: Steppermotoren: Ansteuerung&Auswahl on: June 23, 2012, 09:18:06 am
Ich würde versuchen ein paar ausrangierte Drucker zu finden ich denke die Einheiten darin kann man gut "hacken". Auf youtube gibt es einige schöne Arduino Plotter/Drucker
z.B. hier
647  Using Arduino / Networking, Protocols, and Devices / Re: Problems with RS485 Comunication on: June 22, 2012, 12:47:32 pm
I solved the problem after testing testing testing testing testing testing testing. Only change the RS485.print => RS485.write

 smiley-mr-green smiley-grin
648  Using Arduino / Networking, Protocols, and Devices / Re: Coding problem?? on SoftwareSerial on Aruino 1.0.1 on: June 22, 2012, 04:41:29 am
I got also an problem with the softserial under 1.0.1. Try 0023 with the newsoftserial lib von arduiniana (supposed the same like Software Serial under 1.0.1 they write on the Homepage). If the newsoftserial work with your hardware under 0023 there must be a problem with the software serial under 1.0.1.

Greeting
Daniel
649  Using Arduino / Networking, Protocols, and Devices / Re: Problems with RS485 Comunication on: June 22, 2012, 01:03:57 am
The Master Code (wich i have the problems)
These Verison worked with 0023

I only change for Working with 1.0.1 The WConstans.h => adruino.h
and the NewSoftSerial => to Software Serial (also the beginning of th class)
Code:
#include <nokia_3310_lcd.h>
#include "WConstants.h"
#include <NewSoftSerial.h>
#include "RS485_protocol.h"

#define ENABLE_PIN 4      // Enable Pin (High= Senden aktiv LOW empsfanen aktiv

int RINT1,RINT2,RINT3,Wert=0;
boolean links,hoch,rechts,runter,cbut,clock,lastclock=false;
boolean L1,L2,L3=true;
boolean lrechts=false;
boolean Send=false;
unsigned long pm1;
unsigned long pm2;
byte ref1=100;
byte ref2=33;
byte State,page,line,ebene,ebeneold=0;
byte Adresse=1;
byte AdresseSlave=0;
byte sndbuffer [4];                              // Buffer für Daten max 20 Byte

void fWrite (const byte what)                // Handler für RS485 Lib
{
  rs485.print (what);  
}

int fAvailable ()
{
  return rs485.available ();  
}

int fRead ()
{
  return rs485.read ();  
}

Nokia_3310_lcd lcd=Nokia_3310_lcd();
NewSoftSerial rs485 (2, 3);  // Initalisierung SoftSerial für RS485  (receive pin, transmit pin)


void setup (){
  lcd.LCD_3310_init();  //Display Intialiseiern
  lcd.LCD_3310_clear();  // Display löschen
  // Serial.begin(9600);
  rs485.begin(9600);
  pinMode (ENABLE_PIN, OUTPUT);  // Pin als Ausgang setzten
}

byte msg[4];

void loop(){
  if (millis()-pm2 > ref2){
    pm2=millis();
    lcd.LCD_3310_clear();  // Display löschen
  }
  if (millis()-pm1 > ref1){
    pm1=millis();
    clock = !clock;
  }
  if (clock==true){
    key_in();
    key();
  }
  if(rechts==true&&lrechts==false){
   if (page==0)
    page=line+1;
  
    lrechts=true;
    line=0;
  }
  if (links==true){
    page=0;
  }
  switch (page){
  case 0:
    Menu();
    break;
  case 1:
    Seite1();
    break;
  case 2:
    Seite2();
    break;
  case 3:
    Seite3();
    break;  
  case 4:
    Seite4();
    break;  
  case 5:
    Seite5();
    break;
  case 6:
    Seite6();
    break;
  }

  if (line <=0){
    line=0;
  }
  if (line >=5){
    line=5;
  }

  if(Send==true){                              // Senden der Anforderung
    // Buffer für Daten max 20 Byte
    msg[0]=AdresseSlave;                      // Adresse vom Slave
    msg[1]=0xAA;                               // Anfoderung Daten Senden BIN 1010101=0xf
     digitalWrite(ENABLE_PIN,HIGH);            // Treiber Aktivieren
    sendMsg (fWrite, msg, sizeof msg);        // Daten Senden
    digitalWrite(ENABLE_PIN,LOW);             // Treiber deaktiviern Empfänger akvivieren
    Send=false;
  }
}

/* byte received = recvMsg (fAvailable, fRead, buf, sizeof (buf) - 1,50);
 if (received)
 {
 if (buf [0] != Adresse)        // Ist das meine Adresse
 return;  // not my device
 RINT1=(buf[1]<<8)|(buf[2]);    // Zusammensetzten des Empfangenen Bytes
 RINT2=(buf[3]<<8)|(buf[4]);
 RINT3=(buf[5]<<8)|(buf[6]);
 }
 */


void key(){
  if (State==1 && links==false){                    //links
    links=true;
    if (ebene>=1){
      ebene=ebene--;
    }  
  }
  if (State==3 && rechts==false){                    //rechts
    rechts=true;
    if (ebene<=1){
      ebene=ebene++;
    }
  }
  if (State==2 && hoch==false){                    // Hoch
    line=line--;
    hoch=true;
  }
  if (State==4 && runter==false){                    // Runter
    line=line++;
    runter=true;
  }
  if (State==5 && cbut==false){
    if (page==2){
      AdresseSlave=1;
      if (line==0){
        L1=!L1;
        msg[2]=12;  // Ausgang am Slave
        msg[3]=L1;  // Status des Ausgang
        Send=true;  
      }
      if (line==1){
        L2=!L2;
        msg[2]=11;   // Ausgang am Slave
        msg[3]=L2;   // Status des Ausgangs
        Send=true;  
      }
    }
    if (page==3){
      AdresseSlave=2;
      if (line==0){
        L3=!L3;  
        msg[2]=12;   // Ausgang am Slave
        msg[3]=L3;   // Status des Ausgangs
        Send=true;
      }
    }
    cbut=true;
  }
  if (State==0){
    links=false;
    hoch=false;
    rechts=false;
    runter=false;
    cbut=false;
    lrechts=false;
  }
}

void key_in(){
  Wert=analogRead(A0);
  if (Wert<20)
    State=1;                            //links                                                            //Links
  if (Wert<550 && Wert>475)
    State=2;                            //oben                             //Oben
  if (Wert<780 && Wert>650)
    State=3;                            //rechts                            //Rechts
  if (Wert<370 && Wert>300)
    State=4;                            //unten                          // Unten
  if (Wert>980)
    State=0;                            // nichts
  if (Wert<200 && Wert>100)
    State=5;                            // Gedrückt
}

Second Tab:
Code:
void Menu(){
  lcd.LCD_3310_write_string(0,line,">",MENU_NORMAL);
  lcd.LCD_3310_write_string(6,0,"Master",MENU_NORMAL);
  lcd.LCD_3310_write_string(6,1,"Slave1",MENU_NORMAL);
  lcd.LCD_3310_write_string(6,2,"Slave2",MENU_NORMAL);
  lcd.LCD_3310_write_string(6,3,"Seite 4",MENU_NORMAL);
  lcd.LCD_3310_write_string(6,4,"Seite 5",MENU_NORMAL);
  lcd.LCD_3310_write_string(6,5,"Seite 6",MENU_NORMAL);
}


void Seite1(){
  lcd.LCD_3310_write_string(0,0,"RS485 Test",MENU_NORMAL);
  lcd.LCD_3310_write_string(0,1,"Master bin ",MENU_NORMAL);
  lcd.LCD_3310_write_string(0,2,"ICH ICH ICH",MENU_NORMAL);
}

void Seite2(){
  lcd.LCD_3310_write_string(0,line,">",MENU_NORMAL);
  lcd.LCD_3310_write_string(6,0,"LED rt",MENU_NORMAL);
  if (L1==true)
    lcd.LCD_3310_write_string(50,0,"Ein",MENU_HIGHLIGHT);
  else
    lcd.LCD_3310_write_string(50,0,"Aus",MENU_NORMAL);
  lcd.LCD_3310_write_string(6,1,"LED gn",MENU_NORMAL);
  if (L2==true)
    lcd.LCD_3310_write_string(50,1,"Ein",MENU_HIGHLIGHT);
  else
    lcd.LCD_3310_write_string(50,1,"Aus",MENU_NORMAL);  
  lcd.LCD_3310_write_string(6,5," Slave 1 ",MENU_NORMAL);
}

void Seite3(){
  lcd.LCD_3310_write_string(0,line,">",MENU_NORMAL);
  lcd.LCD_3310_write_string(6,0,"LED rt",MENU_NORMAL);
  if (L3==true)
    lcd.LCD_3310_write_string(50,0,"Ein",MENU_HIGHLIGHT);
  else
    lcd.LCD_3310_write_string(50,0,"Aus",MENU_NORMAL);  

  lcd.LCD_3310_write_string(6,5," Slave 2 ",MENU_NORMAL);
}
650  Using Arduino / Networking, Protocols, and Devices / Problems with RS485 Comunication on: June 22, 2012, 01:01:51 am
Got a little question about the RS485 Lib. I used this one from Nick Gammon ( http://www.gammon.com.au/forum/?id=11428 )
I used this lib to make my own houseautomation with an arduinoNanoV3 for Master.
The Slaves are build with Atmega und Attiny84. The Communication made with NewSoftSerial under 0023
The Master Communication worked fine with NewSoftSerial an compiled under 0023.
So yesterday i started to work with 1.0.1, i read on the main site of arduiniana who developed the newsoftserial under 00xx that the SOftwareSerial wich included on 1.0.1 is the same way. I only have to chance the NewSoftSerial to SoftwareSerial.
It worked on the slaves with the 1.0.1. On the master (with the abolutly same code only the changes of NewSoftSerial =>SoftwareSerial) it wont worked i tried many times with also with checking the buffer over hardware serial with an Terminalprogramm. But it wont work.
Do you know about Problems with you rs485 Softserial and arduino 1.0.1.
With the Aruino IDE 0023 worked it completly
WIth the Arduino 1.0.1 it wont work. Bothe IDEs compiled this code without Failure.
651  International / Deutsch / Re: RS485 - Kommunikation on: June 21, 2012, 01:46:51 pm
Darf ich dir mal diese Seite empfehlen. Ich habe meine RS485 Kommunikation darauf basiert
http://www.gammon.com.au/forum/?id=11428
Er hat auch ein bisschen Sicherheit drin mit komplementär Übertragung und Start und Endbyte siehe Link

Hier noch den Link zu meiner Vorstellung.
Ich habe jetzt einen Master mit LCD und und Bedienung über ein Menu gemacht und einen Nano als Slave und einen attin84 als zweiten Slave (im Video sind es noch zwei Nanos).
Hier dier Thread:
http://arduino.cc/forum/index.php/topic,109050.0.html

Bei Fragen gerne zu Verfügung.
Das Protokoll habe ich selbst gemacht:
Es sieht mittlerweile so aus.
Byte 1 = Adresse des Sklaven
Byte 2=  zum Setzen digital Ausgang 0x00, zum setzen analogAusgang  0xC3 oder Anfrage Daten 0xAA (z.B. TempFühler)
Byte 3= Pin (Byte Pin)
Byte 4= Wert (Hier Null und Eins)

Das ist nur zum Testen
Du bist Frei in deinen Telegrammdaten.

Also diese Sketche sind extrem Leicht auf deine Bedürfnisse anzupassen.
Ich nutze hier die SoftwareSerial um mir den Hardware Serial für debbuging freizuhalten und nicht die Uploaddaten auf den ganzen Bus zu schicken. Die Übertragung läuft sicher mit 9600baud.

Gruß Daniel
652  International / Deutsch / Re: Ikea-Lampan-Lampen-Umbau zu RGB-Licht / 19.06.12 -> FERTIG + Video on: June 21, 2012, 11:23:26 am
Bis Ben viel Aufwand für ne Klodeckel Beleuchtung vorallem bekommst du den de  Deckel ja net richtig auf. smiley-razz
653  International / Deutsch / Re: Welche Funktion haben diese Bauteile (bischen OT) on: June 21, 2012, 04:51:39 am
Auf jeden Fall wieder Shockty-Dioden einsetzten da die bei 2 Si Dioden (2*0,7V)1,4V fehlen das unweigerlich dazu führt das der Laderegler erst bei höherer Sonneinstrahlung anfängt zu laden gegenüber den Shocktys (2*0,2V) das ist nur ein drittel Spannungsverlust !!!
654  International / Deutsch / Re: Aquariumlampe mit Arduino dimmen!?!? on: June 20, 2012, 04:45:43 am
Wenn du jede LED einzeln Ansteuern willst brauchst du 12 PWM willst aber nur die Blauen und Weissen zusammen Steuern brauchst du nur zwei.
Der Ebay fasst dir halt immer 3 LED zusammen die du über einen PWM ansteuerst, Du kannst ihm ja aber auch mitteilern das du jeweils 6 zusammen dimmen willst.
Das kommt darauf an was du willst.
655  International / Deutsch / Re: Aquariumlampe mit Arduino dimmen!?!? on: June 20, 2012, 02:34:57 am
Ich würde es mit einem NanoV3 machen (wenn du  auch ein bisschen Löten kannst). Dann kannst du dir ein "Motherboard" bauen wo du dann den Nano einfach darufsteckt. Vorteil dabei ist das der Nano auch einiges kleiner ist als der UNO oder Mega. Den kann man auch direkt Programmieren währen der Gesteckt ist und er 100% identische mit dem UNO von den IOs hat sogar noch zwei zusätzliche Analog Inputs
656  International / Deutsch / Re: ATTIny 84 klappert statt Ton on: June 19, 2012, 03:45:49 pm
Bist du weiter gekommen ?
Ich habe gerade meine Attiny84 bekommen und keine Probleme mit dem Flashen und der Geschwindigkeit.
Alles mit dem o.g. Brenner
657  International / Deutsch / Re: Aquariumlampe mit Arduino dimmen!?!? on: June 19, 2012, 03:36:21 pm
Hi Christian,
Wenn du bereit bist selber was auf die Beine zustellen so Programmtechnisch gesehen. Dann wird dir hier auf jeden Fall geholfen in dem Sinne komme hier nicht weiter. Es gibbt viele Leute die dir hier auf jeden Fall weiterhelfen. Ich kann dir nur den Playground empfehlen und diese Seite hier:
http://freeduino.org/

Mein allererstes Vorgehen bei meinem Projekt.
Will Dimmen !!!
=> also auf LED Projekte mit dimmen geschaut Code gesaved
Will Uhrzeit !!!
=> also DCF und RTC Projekte geschaut Code gesaved
Will Display !!!
=> also Display Projekte angeschaut Code gesaved

Dann habe ich mir die Codes so angeschaut und versucht zu verstehen und der Rest ist learning by doing und viele Fragen hier.
Es gibt immer eine Lösung du wirst hier aber keinen Finden wo du sagst hier meine Hardware und jetzt macht ihr mir hier mal ein Programm.

Aber ein Warnung Arduino macht Süchtig nach mehr smiley
Du suchst dann richtig nach Projekten die man noch machen kann.
Ich habe vor 2 Jahren angefangen diverse Projekte und  Habe jetzt mindestens 8 Arduino und haufen Tinys 84,85 die Arduniert worden sind  smiley
658  International / Deutsch / Re: Aquariumlampe mit Arduino dimmen!?!? on: June 19, 2012, 12:16:49 pm
Acht bei einer KSQ müssen die LEDs in Reihe! Gleicher Strom für alle LEDS du kannst nicht eine 1A KSQ nehmen und 3*333mA LED anhängen die mit der kleinsten Uf wird den höchste Strom abbekommen. Bei 50W LED heisst das schon bei einer reihenschaltung von 2LED 60V und darüber würde ich als nicht elektoniker nicht gehen.
659  International / Deutsch / Re: Aquariumlampe mit Arduino dimmen!?!? on: June 19, 2012, 07:48:27 am
Ich habe letzten auf ner Bühne einen 600W LED brenner im Einsatz gesehen der ersetzte ein 3,0kW HMI Tageslichtlampe !!!
660  International / Deutsch / Re: Aquariumlampe mit Arduino dimmen!?!? on: June 19, 2012, 06:31:19 am
Wie willst du das mit der Kühlung der LED machen. Ich habe 10W LEDs und die Külung war schon ein recht hoher Aufwand (im freien Raum) mit 15cm2 4mm Alu pro LED bei einer geschlossen Raum wird das bei 12*50Watt schon ein Brett. Vor allem heizt du damit ja auch das Wasser. Schon man ne 10Watt LED in Betrieb gesehen. Wenn ich das so lese denke ich das 12*10Watt LED schon reichen. Bei 10W LED habe ich den Eindruck das eine 10W LED ungefähr die Lichtleistung eines 300W Deckenfluters.

Brauchen wirst du
Ein Arudino UNO oder ein NanoV3
Eine "Zeitquelle" am besten eine DS1308 Real Time Clock mit NV-Ram da kannst du dann deine Schaltzeiten ablegen
Und dann um den Dimmer anzusteuern ein
http://www.cctools.eu/artikel/index.php/1420

Und dann noch ein bisschen Programm
Pages: 1 ... 42 43 [44] 45 46 ... 77