Freitag, 12. Februar 2016

Benomatic


Hier mal ein paar Bilder zum Benomatic :)

Erster Versuch für den Portionierer :


Diese Idee ist zwar noch aktuell, habe mich aber bei der jetzigen Version auf eine andere Methode eingerichtet.

Prototyp um die Funktion und die Ideen mal aus zu probieren:


Dieser ist aber auch wieder auseinander genommen worden und hat sich geändert. Sein Zweck als Prototyp hat er aber gemacht.

jetziges Bedienelement :


jetziger Benomatic V1.0 wartet auf den Zusammenbau und anschließen der Elektronik.









Samstag, 6. Februar 2016

ESP8266 Wlan Modul

Anschlüsse:


Ich gehe hier mal die Schritte durch die ich gemacht habe als ich die Module bekommen habe.

Zuerst mal ausgepackt

Am Arduino Uno anschließen :
ESP8266  ----->   Arduino Uno

GND          ---->        GND
RX         ------->          RX
TX          ------>           TX
GIPO0    ------>          GND (=Programmier Modus)
CH_PD    ------>         3.3V über einen 10K Widerstand

ich habe bewusst VCC noch nicht an 3.3 angeschlossen ! Kommt gleich.


Arduino IDE (bei mir grad die 1.6.7) öffnen

Board Arduino Uno (natürlich angeschlossen!!) und richtigen COM Port aussuchen

den Serial Monitor öffnen
Sowohl NL als auch CR auswählen
Baudrate 74880 Baud (das war bei mir der Fall, solltet ihr im nächsten schritt nur wirre Zeichen
zu sehen bekommen, wechselt solange bis ihr den Text lesen könnt)

VCC     ------>          3.3V anschließen (ACHTUNG !!! NUR 3.3V !!! 5V zerschiesst den 8266!!)

In der Seriellen Ausgabe sollte nun sowas wie :

"ets Jan 8 2013,rst cause 2,boot mode:(1,0)"

stehen. (Wenn bei euch wirre Zeichen stehen die Baudraten durchprobieren bis ihr ihn lesen könnt)

Arduino IDE und Seriellen Monitor schließen

FlasherTool öffnen

BIN ist die v0.9.2.2 AT Firmware.bin
COM Port des immer noch angeschlossenen Arduino Unos eingeben.
Dann auf download klicken.
Nun sollte der 8266 geflasht werden dauert ein bisschen. Es endet mit:
Leaving...
Failed to leave Flash mode
dies kann ignoriert werden.
Flasher schließen.

Nun haben wir Zugriff auf die AT Kommandos.

GIPO0 von GND auf 3.3V mit einem 10 K Widerstand dazwischen.

VCC 3.3 Kabel eben rausstecken

Arduino IDE und dann wieder den Seriellen Monitor öffnen

Baud nun auf 9600 stellen, da durch den AT Flash dieser nun auf 9600 steht.

VCC 3.3 wieder anschließen

Zur Probe nun AT eingeben. Die Antwort sollte:
AT
OK
lauten

Erstmal die Baudrate erhöhen mit dem Befehl:
AT+CIOBAUD115200

Nun müssen wir natürlich unseren Serial Monitor auch umstellen von 9600 auf 115200, sonst können wir nicht weiter machen ;)

Wenn Ihr noch weiter AT Kommandos eingeben oder verändern wollt so habe ich hier oben ja auf eine PDF Datei verlinkt wo die AT Befehle drin stehen.









Mittwoch, 3. Februar 2016

YwRobot Arduino LCM1602 IIC V1

Heute kamen meine LCDs aus Hongkong an die ich bei Ebay geschossen hatte.
Es handelt sich um die YwRobot Arduino LCM1602 IIC V1 LCDs. Da ich zur Zeit
auch ein größeres Projekt mache in dem ich eins brauche und ich PINs sparen möchte,
kam mir das Angebot ganz recht. Lange Rede kurzer Sinn, möchte nur jetzt hier schreiben
wie Ihr es anschließt um es zum laufen zu bringen.


LCD ---------> Arduino
GND ---------> GND
VCC ---------> VCC 5 V
SDA ---------> A4
SCL ---------> A5


Ihr müsst dann noch die LiquidCrystal_I2C Library in eure Arduino IDE laden.

Sketch:

/*Example Software Sketch
 16 character 2 line I2C Display
 Backpack Interface labelled "A0 A1 A2" at lower right.
 ..and
 "YwRobot Arduino LCM1602 IIC V1"
 Die meisten benutzen die Adresse  0x27, einige die 0x3F
 terry@yourduino.com 

 Anschluesse:
 GND zu GND
 VCC zu 5V
 SDA zu A4
 SCL zu A5
 */
/*-----( Import needed libraries )-----*/
#include <Wire.h>  // Kommt mit der Arduino IDE
// Die LCD I2C Library gibt es hier: 
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

#include <LiquidCrystal_I2C.h>

/*-----( Declare Constants )-----*/
/*-----( Declare objects )-----*/
// set the LCD address to 0x27 for a 16 chars 2 line display
// A FEW use address 0x3F
// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

/*-----( Declare Variables )-----*/
//NONE

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  Serial.begin(9600);  // Used to type in characters

  lcd.begin(16,2);   // initialize the lcd for 16 chars 2 lines, turn on backlight

// ------- Quick 3 blinks of backlight  -------------
  for(int i = 0; i< 3; i++)
  {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
  }
  lcd.backlight(); // finish with backlight on  

//-------- Write characters on the display ------------------
// NOTE: Cursor Position: (CHAR, LINE) start at 0  
  lcd.setCursor(0,0); //Start at character 4 on line 0
  lcd.print("Hallo, Welt!");
  delay(1000);
  lcd.setCursor(0,1);
  lcd.print("HI!ganzprivat.de");
  delay(8000);  

// Wait and then tell user they can start the Serial Monitor and type in characters to
// Display. (Set Serial Monitor option to "No Line Ending")
  lcd.clear();
  lcd.setCursor(0,0); //Start at character 0 on line 0
  lcd.print("Oeffne Serial Mon");
  lcd.setCursor(0,1);
  lcd.print("Tippe irgendwas");  


}/*--(end setup )---*/


void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
  {
    // when characters arrive over the serial port...
    if (Serial.available()) {
      // wait a bit for the entire message to arrive
      delay(100);
      // clear the screen
      lcd.clear();
      // read all the available characters
      while (Serial.available() > 0) {
        // display each character to the LCD
        lcd.write(Serial.read());
      }
    }
  }

}/* --(end main loop )-- */


/* ( THE END ) */




Donnerstag, 28. Januar 2016

HC-05 Bluetooth Modul AT Modus

Ein leeres Sketch auf dem Arduino aufspielen
USB Stecker abziehen (kein Strom auf dem Arduino)
Bluetoothmodul verbinden:
BT-05                                    Arduino
RXD                                       RX
TXD                                       TX
GND                                     GND
VCC                                       5V
EN                                         3.3V

USB Kabel wieder anschliessen.
SerialMonitor in der Arduino DIE öffnen
Baudrate 38400 Sowohl NL als auch CR einstellen

Nun können AT Kommandos gesendet werden.

Arduino 433 MHz Modul

433 MHz sender empfänger

Projekt 1- RF Blink
Als erstens müssen wir testen, ob die HF-Module arbeiten. Also werden wir eine sehr einfachen Sende- und Empfangs Aufbau entwerfen, um die Funktion zu testen.
Wir benutzen die Arduino OnBoard LED um das senden und empfangen zu sehen. Es wird eine leichte Verzögerung zwischen den beiden Arduinos geben.
Man kann auch eine Antenne auf den Modulen löten um die Reichweite zu erhöhen, dies tu ich aber jetzt nicht.
Beim Versuchsaufbau fand ich heraus das ich eine bessere Genauigkeit mit 3.3 V bekomme anstatt mit 5 V um dem Empfänger zu versorgen.
Hier sind die Teile die erforderlich sind für den Aufbau:
Hier sind die Teile, die Sie benötigen, um dieses Projekt durchzuführen:

2 x Arduino UNO oder kompatiblen Boards (oder ATTiny85 und Uno) ect.
Breadboard
Kabel
RF-Modul (433 MHz)

Fritzing Aufbau:

433mhz Fritzing schaltung

Arduino - Sketch - Sender:

  
 //    433 mhz Blink - Sender Sketch 
           
 

 #define rfsenderPin 4  //RF Sender pin = digital pin 4
 #define ledPin 13        //Onboard LED = digital pin 13

 void setup(){
   pinMode(rfsenderPin, OUTPUT);     
   pinMode(ledPin, OUTPUT);    
 }

 void loop(){
   for(int i=4000; i>5; i=i-(i/3)){
     digitalWrite(rfsenderPin, HIGH);     //sendet ein HIGH Signal
     digitalWrite(ledPin, HIGH);            //LED anschalten
     delay(2000);                           //1 Sekunde warten
     
     digitalWrite(rfsenderPin,LOW);      //sendet ein LOW Signal
     digitalWrite(ledPin, LOW);            //LED ausschalten
     delay(i);                            //variabler Delay
   }
 }
--------------------------------------------------------

Arduino - Sketch - Empfänger
  //    433 mhz Blink - Sender Sketch



 #define rfReceivePin A0  //RF Empfänger Pin = Analog pin 0
 #define ledPin 13        //Onboard LED = digital pin 13

 unsigned int data = 0;   // Variable zum speichern empfangener Daten
 const unsigned int upperThreshold = 70;  //Höchster Schwellenwert
 const unsigned int lowerThreshold = 50;  //niedrigster Schwellenwert

 void setup(){
   pinMode(ledPin, OUTPUT);
   Serial.begin(9600);
 }

 void loop(){
   data=analogRead(rfReceivePin);    //warten auf Daten am Analog pin 0
   
    if(data>upperThreshold){
     digitalWrite(ledPin, LOW);   //Wenn ein LOW Signal empfangen wird, LED AUS
     Serial.println(data);
   }
   
   if(data<lowerThreshold){
     digitalWrite(ledPin, HIGH);   //Wenn ein HIGH Signal empfangen wird, LED AN
     Serial.println(data);
   }
 }