Mai 2012
M D M D F S S
« Sep    
 123456
78910111213
14151617181920
21222324252627
28293031  
Kategorien

Xbee – Drahtlos in den Wahnsinn ;-)

Als erstes : Hier ist eine nachvollziehbare Erklärung wie man ein peer to peer aufbauen kann : http://jleopold.de/2010/01/01/xbee_funkmodul/,

Meine beiden Xbees laufen nach diesen beiden Einstellungsdateien:

Xbee2DateienEinstellung

 

 

Zweier, Zehner Sechszehnersystem

Bissel Mathe:

Auf der Suche nach einer halbwegs zuverlässigen Nachhilfe für binäre Übertragungsmechanismen bin ich an dieser wunderbaren Erklärbär Seite vorbeigebretzelt :

http://www.arndt-bruenner.de/mathe/scripts/Zahlensysteme.htm

Super gemacht !

Arduino und Riesen VFD Display

Einfach genial !


I2C Bus Mehrere Bauteile adressieren

Etwas mühsam, weil zusammen getragen :

Eine Standard-I²C-Adresse ist das erste vom Master gesendete Byte, wobei die ersten sieben Bit die eigentliche Adresse darstellen und das achte Bit (R/W-Bit) die Lese- oder Schreibrichtung festlegt (0 für schreiben, 1 für lesen). I²C nutzt daher einen Adressraum von 7 Bit, was bis zu 112 Knoten auf einem Bus erlaubt (16 der 128 möglichen Adressen sind für Sonderzwecke reserviert).

©Wikipedia

—–

Eine gute Dokumentation zum Bus findet sich hier : http://www.robot-electronics.co.uk/acatalog/I2C_Tutorial.html

Vorab:

Es wird ein beliebiger Master benötigt, einzig um ein Gerät zu haben, welches die Taktfrequenz referenziert.

 

 

rfm12b SPI und Bits schieben im Protokoll

Auch wenn die Zeiten in denen ich mich um Transceiver kümmerte und in staunende Ehrfurcht verfiel angesichts dieser oder jener technischen Neuerung DEFINITV VORBEI SIND …! das hier “macht mich staunen”

 

Arduino überzeugt durch seine flexible Bandbreite

Pic © by JeeLabs

Libray etc:  http://jeelabs.org/2009/02/10/rfm12b-library-for-arduino/

 

Pin Belegung :

 

                 GND----------GND-\ (ground in)
                              SDN-/ (shutdown in)
                 3V3----------VCC   (3.3V in)
 interrupt 0 pin D2-----------NIRQ  (interrupt request out)
          SS pin D10----------NSEL  (chip select in)
         SCK pin D13----------SCK   (SPI clock in)
        MOSI pin D11----------SDI   (SPI Data in)
        MISO pin D12----------SDO   (SPI data out)

kommt von: http://www.open.com.au/mikem/arduino/RF22/

433MHz RF Link Kit am Arduino

Welcome back 432 MHz

Grundlegendes :

Fertiges Bauteil: http://www.seeedstudio.com/depot/433mhz-rf-link-kit-p-127.html

Papier : http://www.open.com.au/mikem/arduino/VirtualWire.pdf

Libray : http://www.open.com.au/mikem/arduino/

Dieses Duo soll mir die Verbindung von außen nach innen kabellos herstellen. Bedauerlicherweise ist das nur eine “One Way Verbindung”, etwa wie diejenigen bei drahtlosen Thermofühlern. Unsicher ist bisher noch das Zusammenspiel zwischen I2C und der Virtual Wire Libray.

HYT 371 I2C Sensor am arduino kleines Testprogramm

 

Erfolgreich per I2C angedockt:

 

Hier mal ein Testschnipsel:

 

 

#include <Wire.h>   // include Wire library for I2C
void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
#define HYT371_ADDR 0×28

pinMode(13, OUTPUT);
Wire.begin();   // start Wire library as I2C-Bus Master
Serial.begin(9600);
}

void loop() {

double Humidity;
double Temperature;

Wire.beginTransmission(HYT371_ADDR);
Wire.send(0);
Wire.available();
int Ack = Wire.receive(); // receive a byte

Wire.endTransmission();
delay(100);

// READ DATA from here on
Wire.beginTransmission(HYT371_ADDR);
Wire.requestFrom(HYT371_ADDR,4);  //Reade 1 byte
Wire.available();
int b1 = Wire.receive(); // receive a byte
int b2 = Wire.receive(); // receive a byte
int b3 = Wire.receive(); // receive a byte
int b4 = Wire.receive(); // receive a byte
Wire.send(0); //NACK

// combine the bits
int RawHumidBin = b1 << 8 | b2;
// compound bitwise to get 14 bit measurement first two bits
// are status/stall bit (see intro text)
RawHumidBin =  (RawHumidBin &= 0x3FFF);
Humidity = 100.0/pow(2,14)*RawHumidBin;

b4 = (b4 &= 0x3F); //Mask away 2 least sign. bits see HYT 221 doc
int RawTempBin = b3 << 6 | b4;
Temperature = 165.0/pow(2,14)*RawTempBin-40;

Wire.endTransmission();

digitalWrite(13, HIGH);   // set the LED on
delay(1000);              // wait for a second
digitalWrite(13, LOW);    // set the LED off
delay(1000);              // wait for a second
Serial.print(Humidity);
Serial.print(“% – Temp: “);
Serial.println(Temperature);
}

 

Das Programm lässt die Platinen LED blinken – als Lebenszeichen

 

 

Firefox4 von Englisch nach deutsch und wieder zurück

Guten Tag !

 

Die einzig brauchbare Anleitung hierfür findet sich unter : http://www.fene-blog.de/firefox/firefox-sprache-der-benutzeroberflache-andern/

Nach 3 Wochen Suche von hier ein großes DANKE an die Verfasser !

Wärmekamera für unter 100$

PrototypGibt es hier zu sehen:

 

http://cheap-thermocam.lima-city.de/

 

 

KYT 371 Reichelt Feuchtesensor zusammen mit Arduino

// ********************************************
// Attention, this is unverified Code, Rev. 0.5
// Destinated only as first Information
// and to look that it works with a ARDUINO
// This code will be improved in future!
// ********************************************
//include Wire(>>I²C)-libary:
#include <Wire.h>

//set the adress of sensor:
int adress=0x28;

void setup()
{ //set arduino as master:
  Wire.begin();
  //set baudrate:
  Serial.begin(38400);
  /*this code sets
 databits:8 ; parity:ODD ; stopbits:2*/
  UCSR0C = B00111110;
}
void loop()
{ //declaration of variables:
  unsigned int valuetempH=0;
  unsigned int valuetempL=0;
  unsigned int valuetemp=0;
  unsigned int valuecapH=0;
  unsigned int valuecapL=0;
  unsigned int valuecap=0;
  double endvaluecap=0;
  double endvaluetemp=0;

  //DataFetch(4 byte):
  Wire.requestFrom(adress,4);
  //wait for 4 bytes available:
  if(Wire.available()>3)
     //receive the databytes:
     {valuecapH=Wire.receive();
      valuecapL=Wire.receive();
      valuetempH=Wire.receive();
      valuetempL=Wire.receive();
      Wire.endTransmission();

      //mask the statusbits
      valuecapH = (valuecapH&B00111111);
      valuetempL= (valuetempL&B11111100);

      /*put together the highbytes and lowbytes
      For this, the highbyte gets moved 8 bits higher*/
      valuecap  = (valuecapH*256 + valuecapL);
      /*the temperature highbyte gets moved 6 bits
      and the lowbyte 2 bits lower*/
      valuetemp = ((valuetempH)*64 + valuetempL/4);

      //formate the values
      endvaluecap=(double(valuecap))/163.83;
      endvaluetemp=((double(valuetemp))/163.83)/2;

    //output the values compatible with PCLog:
    Serial.print(endvaluecap);
    Serial.print("\t");
    Serial.println(endvaluetemp);}

    //in case of no receiving possible:
   else
     {Serial.println("no data");}

  delay(100);
}

---

Das habe ich auf der Seite des Herstellers gefunden.