Arduino Tools

Dieses Kapitel enthält Tools zum Entwickeln, Testen und Einrichten der Kommunikation für Arduino-Software.

I²C scanner

english This sketch tests the standard I²C 7-bit addresses. Devices with higher bit address might not be seen properly.

deutsch Diese Sketch testet die Standard-I²C-7-Bit-Adressen. Geräte mit höherer Bitadresse werden möglicherweise nicht richtig angezeigt.

Eine Zusammenfassung des Arduino I²C finden Sie hier: Arduino I²C.
Arduino I²C Kommunikationsmodule finden Sie hier: Arduino I²C Kommunikation.

click here to see the program

click here to see the program

// --------------------------------------
// i2c_scanner
//
// Version 1
//    This program (or code that looks like it)
//    can be found in many places.
//    For example on the Arduino.cc forum.
//    The original author is not known.
// Version 2, Juni 2012, Using Arduino 1.0.1
//     Adapted to be as simple as possible by Arduino.cc user Krodal
// Version 3, Feb 26  2013
//    V3 by louarnold
// Version 4, March 3, 2013, Using Arduino 1.0.3
//    by Arduino.cc user Krodal.
//    Changes by louarnold removed.
//    Scanning addresses changed from 0...127 to 1...119,
//    according to the i2c scanner by Nick Gammon
//    http://www.gammon.com.au/forum/?id=10896
// Version 5, March 28, 2013
//    As version 4, but address scans now to 127.
//    A sensor seems to use address 120.
// 
//
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
//
 
#include <Wire.h>
 
 
void setup()
{
  Wire.begin();
 
  Serial.begin(9600);
  Serial.println("\nI2C Scanner");
}
 
 
void loop()
{
  byte error, address;
  int nDevices;
 
  Serial.println("Scanning...");
 
  nDevices = 0;
  for(address = 1; address < 127; address++ ) 
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
 
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16) 
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");
 
      nDevices++;
    }
    else if (error==4) 
    {
      Serial.print("Unknow error at address 0x");
      if (address<16) 
        Serial.print("0");
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");
 
  delay(5000);           // wait 5 seconds for next scan
}

SIM900 serielle Kommunikation

deutsch Kommunikationsprogramm zum Testen des SIM900-Moduls. Befehle müssen in der Befehlszeile des seriellen Monitors (mit ENTER) ausgegeben werden. Der Monitor muss auf "auch NL als auch CR" eingestellt sein.

Weitere Informationen zum SIM900 finden Sie hier: SIM900 quad band GSM-GPRS shield
SIM900-Befehle: SIM900 AT Befehle

english Communication program for testing the SIM900 module. Commands must be issued on the serial monitor command line (with ENTER). The monitor must be set to "booth NL & CR".

You can read more about the SIM900 here: SIM900 quad band GSM-GPRS shield
SIM900 commands: SIM900 AT commands

click here to see the program

click here to see the program

//Serial Relay - Arduino will patch a
//serial link between the computer and the GPRS Shield
//at 19200 bps 8-N-1
//Computer is connected to Hardware UART
//GPRS Shield is connected to the Software UART
 
#include <SoftwareSerial.h>
 
SoftwareSerial GPRS(50, 51);  //Mega 2560
unsigned char buffer[64]; // buffer array for data recieve over serial port
int count=0;     // counter for buffer array
void setup()
{
    GPRS.begin(19200);               // the GPRS baud rate
    Serial.begin(19200);             // the Serial port of Arduino baud rate.
 
}
 
void loop()
{
    if (GPRS.available())              // if date is comming from softwareserial port ==> data is comming from gprs shield
    {
        while(GPRS.available())          // reading data into char array
        {
            buffer[count++]=GPRS.read();     // writing data into array
            if(count == 64)break;
        }
        Serial.write(buffer,count);            // if no data transmission ends, write buffer to hardware serial port
        clearBufferArray();              // call clearBufferArray function to clear the storaged data from the array
        count = 0;                       // set counter of while loop to zero
 
 
    }
    if (Serial.available())            // if data is available on hardwareserial port ==> data is comming from PC or notebook
    GPRS.write(Serial.read());       // write it to the GPRS shield
}
void clearBufferArray()              // function to clear buffer array
{
    for (int i=0; i<count;i++)
    { buffer[i]=NULL;}                  // clear all index of array with command NULL
}