Vis indlæg

Denne sektion tillader dig at se alle indlæg oprettet af dette medlem. Bemærk at du kun kan se indlæg der er oprettet i områder du i øjeblikket har adgang til.


Emner - Danni-Hansen

Sider: 1 [2] 3 4 ... 8
16
Generel Elektronik / Hjælp til CD-Rom DC motor
« Dato: Maj 23, 2015, 16:11:44 »
Hej folkens.

Jeg kunne godt bruge noget hjælp til at forstå hvordan jeg sætter plus og minus til for at få den del her til at køre rundt:

https://drive.google.com/file/d/0B4l4hrdSBUAfOGc0X1lPeTBZX2c/view?usp=sharing

17
Hej igen DEF :)

Jeg har tænkt mig at erstatte Earnst nRF24l01 modul med et modul jeg føler der er mere kodevenlig for mig, nemlig HC-05 Bluetooth modulet.

Men HC-05 BT modulet køre på 3.3v på RX/TX delen, så det jeg gerne vil er at sætte en 4050 på frem for 2 modstande :)

Jeg er dog helt forvirret på hvordan jeg kobler det BT Modul på en Arduino Nano :/
Tænkte på om det er samme opkobling som på et Nokia 5110 LCD modul? Dog er jeg stadigvæk i tvivl om hvilke pins der går hvor til.

Alt hjælp modtages.

18
Arduino & Lign. / Arduino Nano 3x servo og ADXL hjælp
« Dato: April 05, 2015, 11:11:40 »
Hej folkens.

Første kode er med 1 servo, og forsøget går ikke lige helt så godt
Jeg bruger Emax ES08MA 2 servo'er til dette projekt.

Servo på Digital Pin 9 (Er klar over at det er en analog servo, hvilket forvirre mig en del)
Også køre ADXL345 på SDA og SCL (med wire.h lib)

Koden er indtil videre bygget sammen sådan her:

Kode:
#include <Wire.h> // I2C library, gyroscope
#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0;    // variable to store the servo position


// Accelerometer ADXL345
#define ACC (0xA7>>1)    //ADXL345 ACC address
#define A_TO_READ (6)        //num of bytes we are going to read each time (two bytes for each axis)
void initAcc() {
  //Turning on the ADXL345
  writeTo(ACC, 0x2D, 1 << 3);
  writeTo(ACC, 0x31, 0x0B);
  writeTo(ACC, 0x2C, 0x09);
  //by default the device is in +-2g range reading
}
void getAccelerometerData(int * result) {
  int regAddress = 0x32;    //first axis-acceleration-data register on the ADXL345
  byte buff[A_TO_READ];
  readFrom(ACC, regAddress, A_TO_READ, buff); //read the acceleration data from the ADXL345
  //each axis reading comes in 10 bit resolution, ie 2 bytes.  Least Significat Byte first!!
  //thus we are converting both bytes in to one int
  result[0] = (((int)buff[1]) << 8) | buff[0];
  result[1] = (((int)buff[3]) << 8) | buff[2];
  result[2] = (((int)buff[5]) << 8) | buff[4];
}
void setup()
{
  Serial.begin(9600);
  Wire.begin();
  initAcc();

  myservo.attach(9);  // attaches the servo on pin 9 to the servo object

}
void loop()
{
  int hx, hy, hz;
  int acc[3];
  getAccelerometerData(acc);
  hx = acc[0];
  hy = acc[1];
  hz = acc[2];

  Serial.print(" X=");
  Serial.print(hx);
  Serial.print(" Y=");
  Serial.print(hy);
  Serial.print(" Z=");
  Serial.println(hz);

  pos = hz / 180;
  myservo.write(pos);              // tell servo to go to position in variable 'pos'
  delay(1000);
}
//---------------- Functions
//Writes val to address register on ACC
void writeTo(int DEVICE, byte address, byte val) {
  Wire.beginTransmission(DEVICE); //start transmission to ACC
  Wire.write(address);        // send register address
  Wire.write(val);        // send value to write
  Wire.endTransmission(); //end transmission
}
//reads num bytes starting from address register on ACC in to buff array
void readFrom(int DEVICE, byte address, int num, byte buff[]) {
  Wire.beginTransmission(DEVICE); //start transmission to ACC
  Wire.write(address);        //sends address to read from
  Wire.endTransmission(); //end transmission

  Wire.beginTransmission(DEVICE); //start transmission to ACC
  Wire.requestFrom(DEVICE, num);    // request 6 bytes from ACC
  int i = 0;
  while (Wire.available())   //ACC may send less than requested (abnormal)
  {
    buff[i] = Wire.read(); // receive a byte
    i++;
  }
  Wire.endTransmission(); //end transmission
}

Det virker dog som om at der er fejl i koden, for servo'en opføre sig ret underligt.

Selve ADXL koden virker fint, dvs. hvis man trækker servo delen fra, så virker den som den skal.

Hjælp søges.

19
Arduino & Lign. / Arduino Kode hjælp (nRF24l01)
« Dato: Marts 05, 2015, 12:42:25 »
Hej DEF.

Har fået leget lidt med Earnst her på det sidste, og det er på tide at udvide hans 'funktioner'

Jeg arbejder lidt på at min Afstands sensor skal fortælle ham hvad han skal gøre det næste stykke tid.

Her under ser i modtager koden til Earnst som det ser ud nu (Med hjælp fra Gerd)

Kode:
/**
 * Project nRF24L01 receiver
 *
 * @author Gerd Bartelt - www.sebulli.com
 *
 * @brief Receives commands from a nRF24L01 and controls a motor.
 * @brief Based on the RF24 example "GettingStarted"
 *       
 * @copyright GPL2
 */
 
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"
 
//
// Hardware configuration
//
 
// Set up nRF24L01 radio on SPI bus plus pins 9 & 10
RF24 radio(9,10);
 
// Set up motor on pin 4,5,6 and 7
int right01 = 4;
int right02 = 5;
int left01 = 6;
int left02 = 7;
int frontSensor = 1; // Analog pin 1
 
 
// Radio pipe addresses for the 2 nodes to communicate.
const uint64_t pipes[2] = {
  0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
 
void setup(void)
{
 
  // Motor pins as output
  pinMode(right01, OUTPUT);
  pinMode(right02, OUTPUT);
  pinMode(left01, OUTPUT);
  pinMode(left02, OUTPUT);
 
  Serial.begin(57600);
  printf_begin();
 
  // Setup and configure rf radio
  radio.begin();
 
  // Increase the delay between retries & # of retries
  radio.setRetries(15,15);
 
  // Open pipes to other nodes for communication
  radio.openWritingPipe(pipes[1]);
  radio.openReadingPipe(1,pipes[0]);
 
  // Start listening
  radio.startListening();
 
  // Dump the configuration of the rf unit for debugging
  radio.printDetails();
}
 
void loop(void)
{
 
  // Receive each packet, dump it out, and send it back
  // if there is data ready
  if ( radio.available() )
  {
    // Dump the payloads until we've gotten everything
    char got_kore_info;
    bool done = false;
    while (!done)
    {
      /*
      //Distance sensor - If less than 10 cm to obj, turn around!
      int read_frontSensor = analogRead(frontSensor);
      int result_frontSensor = (4800/(read_frontSensor - 20));
     
      if (result_frontSensor <= 10) {
        char got_kore_info = 'A';
      }
      //End of obj turn around
      */
     
      // Fetch the payload, and see if this was the last one.
      done = radio.read( &got_kore_info, sizeof(char) );
 
      // Spew it
      printf("Got command '%c'\n\r",got_kore_info);
 
      // Delay just a little bit to let the other unit
      // make the transition to receiver
      delay(20);
 
 
     // First, stop listening so we can talk
    radio.stopListening();
 
      // decode the received "køre info"
      switch (got_kore_info)
      {
      case '8':
        forwards();
        printf("Forwards, Success",got_kore_info);
      break;
 
      case '2':
        backwards();
        printf("Backwards, Success",got_kore_info);
        break;
 
      case '5':
        around();
        printf("Turning Around, Success",got_kore_info);
        break;
 
      case '0':
        stopper();
        printf("Stopping, Success",got_kore_info);
        break;
 
      }
      delay(2500);
 
 
    }
 
    // Send the final one back.
    radio.write( &got_kore_info, sizeof(char) );

    // Now, resume listening so we catch the next packets.
    radio.startListening();
     
  }
}
 
void forwards(){
  printf("Forwards\n\r");
  digitalWrite(right02, LOW);
  digitalWrite(right01, HIGH);
  digitalWrite(left02, LOW);
  digitalWrite(left01, HIGH);
}
 
void backwards(){
  printf("Backwards\n\r");
  digitalWrite(right01, LOW);
  digitalWrite(right02, HIGH);
  digitalWrite(left01, LOW);
  digitalWrite(left02, HIGH);
}
 
void around(){
  printf("Around\n\r");
  digitalWrite(right01, LOW);
  digitalWrite(right02, HIGH);
  digitalWrite(left02, LOW);
  digitalWrite(left01, HIGH);
 
}
 
void stopper(){
  printf("Stop\n\r");
  digitalWrite(right01, LOW);
  digitalWrite(right02, LOW);
  digitalWrite(left02, LOW);
  digitalWrite(left01, LOW);
}

Jeg ville så gerne have både min sender og modtager (på Earnst) til at modtage strings via nRF24l01 signalet.

Så fandt disse 2 koder:

Den her til at sende strings:
https://gist.githubusercontent.com/shnae/8642916/raw/nrf24l01_send_string

De her til at modtage strings:
https://gist.githubusercontent.com/shnae/8642903/raw/nrf24l01_receive_string

Problemet er mest at jeg aner faktisk ikke hvordan jeg umidelbart skal sætte modtager ind i min nuværende kode.

Det er jo min pc der skal tage beslutningerne, udfra hvad afstanden er, så det eneste Earnst egentligt skal, er at tage imod det han får afvide, også levere en afstand i cm. (Push/Pull)

Nogen der kan hjælpe? :)

Mvh. Danni.

20
Køb og Salg / Indkøb hos Farnell - Nogen der kan hjælpe?
« Dato: Februar 27, 2015, 09:10:24 »
Står og mangler flg varer hos Farnell, men, er jo privat person, og det acceptere de ikke umidelbart lige.

varenummer - Producentens varenummer:
380908 - 74HC4050N
2309020 - MC0805B104K500A2.54MM
9452591 - MCMHR16V106M4X7

Der er for ca 50 kr i deres kurv, men, jeg er villig til at finde en der kan hente det hjem fra farnell til min adresse, imod fornuftig betaling.

21
Arduino & Lign. / Stort arduino projekt
« Dato: Februar 22, 2015, 21:49:49 »
Hej DEF.

Som i kan se havde jeg godt gang i mit Arduino og Nokia display.
Hertil har jeg fået en større idé til at videre udvikle det system.
Elektronikken er ikke så svært som det kunne have været, men, kodningen er jeg faktisk meget i tvivl om.

Som i kan se på nedestående billede, så har jeg A1-A2 og A3-SLA det er slave devices som kører på SDA/SCL kommunikation.
Et Nokia 3110/5110 Display, og et Arduino ethernet shield siddende på Arduino Mega 2560.

Forklaringen er:
Arduino mega 2560 skal fungere som master enhed, den har et ethernet shield på for videre udbygning i fremtiden. (Det vil jeg ikke forklare i den her opgave, det bliver for indviklet at skulle tænke på i første omgang).

Arduino Mega har 3 slave enheder
Alle slave enheder er lavet på ATTiny85, da antallet af pins ikke er højt. (De har 4 ben på hver side - se Ref Attiny85 i bunden)

A1-SLA er en lys timer, som skal kunne fortælle et relæ hvornår lyset er tændt og slukket
A2-SLA er en vand timer, som skal kunne indstilles til at køre fx. 20 sekunder hver gang der er gået 1 time
A3-SLA er en DS18B20 sensor slave, som måler temperaturen i Grader Celsius
Alle SLA enheder har et Relæ som aktivere 220 volt (max 10A) til tænd eller sluk når ønsket.

Mega 2560 skal have det Nokia 3110/5110 Display tilkoblet til at kunne vise hvad man laver, og den eneste funktion der skal være i Ethernet shieldet er at den skal gemme oplysningerne på microSD kortet som kan sidde i shieldet.

Det eneste jeg kan se at jeg kan bruge ethernet shieldet til, er at den kan kobles op på et netværk og hente det nuværnde klokke-slet for tidszonen man er i, for at kunne fortælle A1-SLA at lyset skal være tændt fra fx. 08-19 hver dag. (En udvidelse kunne være at den kunne slukke lyset 1 time tidligere i vinter perioden, altså efter dato, og en time længere i sommer perioden efter selvsamme mulighed)

Stort projekt, og jeg har brug for kode hjælp.
Jeg vil i første omgang starte med at køre alle SLA enheder via Arduino NANO da jeg har det hjemme, frem for ATTiny85. Men rent produktions messigt er det nok mere hensigts messigt at bruge ATTiny i slut produktet.


Ref:
Attiny85 https://dlnmh9ip6v2uc.cloudfront.net/assets/f/8/f/d/9/52713d5b757b7fc0658b4567.png

Arduino mega 2560 http://arduino.cc/en/Main/arduinoBoardMega2560

Arduino ethernet shield http://arduino.cc/en/Main/ArduinoEthernetShield

Arduino Nano V3 http://arduino.cc/en/Main/arduinoBoardNano

22
Off Topic / Lidt blandet nyheder
« Dato: Februar 12, 2015, 10:22:43 »
Hej DEF.

Et lille interessant projekt på Kickstarter:
https://www.kickstarter.com/projects/voltera/voltera-your-circuit-board-prototyping-machine?ref=category

Syntes folk skulle se det, kunne være der var nogen der ville invistere i sådanne en dims :)

23
Artikler / Modtage Serial info fra Arduino på Linux Ubuntu
« Dato: Februar 08, 2015, 10:43:06 »
Skulle man sidde med lysten til at bruge en USB port med et Arduino Mega 2560 board, også køre sine målinger ud igennem Linux Ubuntu, til brug i fx. Logging osv, så kan det gøres med en meget simpel kommando (Såfremt din Arduino Kode er lavet ordenligt)

Du går ganske simpelt i Linux terminalen og skriver:
Kode:
cat /dev/ttyACM0

Den vil så give output, efter de indstilninger du har lavet på Arduino Boardet, så hver gang der er måling outputter den.

Arduino koden:
Kode:
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2
#define TEMPERATURE_PRECISION 9

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

// arrays to hold device addresses
DeviceAddress thermometerONE, thermometerTWO; // thermometerTREE, thermometerFOUR, thermometerFIVE, thermometerSIX, thermometerSEVEN, thermometerEIGHT;

void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");

  // Start up the library
  sensors.begin();

  // locate devices on the bus
  Serial.print("Locating devices...");
  Serial.print("Found ");
  Serial.print(sensors.getDeviceCount(), DEC);
  Serial.println(" devices.");

  // report parasite power requirements
  Serial.print("Parasite power is: ");
  if (sensors.isParasitePowerMode()) Serial.println("ON");
  else Serial.println("OFF");

  // assign address manually.  the addresses below will beed to be changed
  // to valid device addresses on your bus.  device address can be retrieved
  // by using either oneWire.search(deviceAddress) or individually via
  // sensors.getAddress(deviceAddress, index)
  //insideThermometer = { 0x28, 0x1D, 0x39, 0x31, 0x2, 0x0, 0x0, 0xF0 };
  //outsideThermometer   = { 0x28, 0x3F, 0x1C, 0x31, 0x2, 0x0, 0x0, 0x2 };

  // search for devices on the bus and assign based on an index.  ideally,
  // you would do this to initially discover addresses on the bus and then
  // use those addresses and manually assign them (see above) once you know
  // the devices on your bus (and assuming they don't change).
  //
  // method 1: by index
  if (!sensors.getAddress(thermometerONE, 0)) Serial.println("Unable to find address for Device 0");
  if (!sensors.getAddress(thermometerTWO, 1)) Serial.println("Unable to find address for Device 1");

  // method 2: search()
  // search() looks for the next device. Returns 1 if a new address has been
  // returned. A zero might mean that the bus is shorted, there are no devices,
  // or you have already retrieved all of them.  It might be a good idea to
  // check the CRC to make sure you didn't get garbage.  The order is
  // deterministic. You will always get the same devices in the same order
  //
  // Must be called before search()
  //oneWire.reset_search();
  // assigns the first address found to insideThermometer
  //if (!oneWire.search(insideThermometer)) Serial.println("Unable to find address for insideThermometer");
  // assigns the seconds address found to outsideThermometer
  //if (!oneWire.search(outsideThermometer)) Serial.println("Unable to find address for outsideThermometer");

  // show the addresses we found on the bus
  Serial.print("Device 0 Address: ");
  printAddress(thermometerONE);
  Serial.println();

  Serial.print("Device 1 Address: ");
  printAddress(thermometerTWO);
  Serial.println();

  // set the resolution to 9 bit
  sensors.setResolution(thermometerONE, TEMPERATURE_PRECISION);
  sensors.setResolution(thermometerTWO, TEMPERATURE_PRECISION);

  Serial.print("Device 0 Resolution: ");
  Serial.print(sensors.getResolution(thermometerONE), DEC);
  Serial.println();

  Serial.print("Device 1 Resolution: ");
  Serial.print(sensors.getResolution(thermometerTWO), DEC);
  Serial.println();
}

// function to print a device address
void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    // zero pad the address if necessary
    if (deviceAddress[i] < 16) Serial.print("0");
    Serial.print(deviceAddress[i], HEX);
  }
}

// function to print the temperature for a device
void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  Serial.print("Temp C: ");
  Serial.print(tempC);
  Serial.print(" Temp F: ");
  Serial.print(DallasTemperature::toFahrenheit(tempC));
}

// function to print a device's resolution
void printResolution(DeviceAddress deviceAddress)
{
  Serial.print("Resolution: ");
  Serial.print(sensors.getResolution(deviceAddress));
  Serial.println();   
}

// main function to print information about a device
void printData(DeviceAddress deviceAddress)
{
  Serial.print("Device Address: ");
  printAddress(deviceAddress);
  Serial.print(" ");
  printTemperature(deviceAddress);
  Serial.println();
}

void loop(void)
{
  // call sensors.requestTemperatures() to issue a global temperature
  // request to all devices on the bus
   sensors.requestTemperatures();

   printData(thermometerONE);
   printData(thermometerTWO);
}

Dette kan også gøres med fx. Arduino Nano, UNO, og hvad man ellers har af boards.
(Du kan også lave dit eget, det er så en længere og større opgave)

Hos mig gav resultatet:
Citér
Dallas Temperature IC Control Library Demo

Locating devices...Found 2 devices.

Parasite power is: OFF

Device 0 Address: 281E2AF6040000F5

Device 1 Address: 289710F6040000B0

Device 0 Resolution: 9

Device 1 Resolution: 9

Device Address: 281E2AF6040000F5 Temp C: 22.00 Temp F: 71.60

Device Address: 289710F6040000B0 Temp C: 40.50 Temp F: 104.90

Device Address: 281E2AF6040000F5 Temp C: 22.00 Temp F: 71.60

Device Address: 289710F6040000B0 Temp C: 40.50 Temp F: 104.90

Device Address: 281E2AF6040000F5 Temp C: 22.00 Temp F: 71.60

Device Address: 289710F6040000B0 Temp C: 40.50 Temp F: 104.90

Device Address: 281E2AF6040000F5 Temp C: 22.00 Temp F: 71.60

Device Address: 289710F6040000B0 Temp C: 40.50 Temp F: 104.90

Device Address: 281E2AF6040000F5 Temp C: 22.00 Temp F: 71.60

Device Address: 289710F6040000B0 Temp C: 40.50 Temp F: 104.90

5 målinger på hver af de 2 sensore.

Go vind.

24
Arduino & Lign. / Setup af ATMEL studio 6.2 + ATTiny85
« Dato: Februar 08, 2015, 10:34:02 »
Hej DEF.

Jeg har fået taget mig sammen og installeret ATMEL Studio 6.2
Jeg kan dog ikke hitte ud af det, var vidst bedre bekendt med Arduino IDE.

Men jeg vil gerne bruge ATMEL studio på et passende tidspunkt, så spørgsmålet er om der er en bestemt måde at sætte den op til at uploade koden til flg. MCU'er i første omgang?

Attiny85
ATmega328p

Jeg syntes jeg fandt et sted i programmet hvor man kunne kopire settings fra en anden pc, osv.
Så er der nogen der eventuelt har de 2 MCU'er i deres system, og som kan finde ud af det?

Mvh. Danni.

25
Køb og Salg / NPN transistors i TO-92 case
« Dato: Januar 25, 2015, 08:02:31 »
NPN transistors i TO-92 case
10 x 2N2222
10 x BC547B
10 x BC337

20 kr, + porto.
Ordenlig indpakning i bobleplast kuverter.

MobilePay, eller konto overførelse.
Sender Mandag til og med Torsdag.
danni.hansen.1985@gmail.com

Mere kan arrangeres.

26
Arduino & Lign. / Earnst v2, Code "MOD"
« Dato: December 26, 2014, 19:00:31 »
Hej DEF.

Sidder med en kammart og piller ved Earnst koden.

Recive koden på Earnst ser pt sådan her ud:
Kode:
/**
 *
 * Project nRF24L01 receiver
 *
 *
 *
 * @author Gerd Bartelt - www.sebulli.com
 *
 *
 *
 * @brief Receives commands from a nRF24L01 and controls a motor.
 *
 * @brief Based on the RF24 example "GettingStarted"
 *
 *       
 *
 * @copyright GPL2
 *
 */

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"

//
// Hardware configuration
//
// Set up nRF24L01 radio on SPI bus plus pins 9 & 10

RF24 radio(9,10);



// Set up motor on pin 4,5,6 and 7
int right01 = 4;
int right02 = 5;
int left01 = 6;
int left02 = 7;
int frontSensor = 1; // Analog pin 1





// Radio pipe addresses for the 2 nodes to communicate.
const uint64_t pipes[2] = {
  0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL
};

void setup(void)
{



  // Motor pins as output
  pinMode(right01, OUTPUT);
  pinMode(right02, OUTPUT);
  pinMode(left01, OUTPUT);
  pinMode(left02, OUTPUT);



  //Serial.begin(57600);
  printf_begin();



  // Setup and configure rf radio
  radio.begin();



  // Increase the delay between retries & # of retries
  radio.setRetries(15,15);



  // Open pipes to other nodes for communication
  radio.openWritingPipe(pipes[1]);
  radio.openReadingPipe(1,pipes[0]);



  // Start listening
  radio.startListening();



  // Dump the configuration of the rf unit for debugging
    radio.printDetails();

}



void loop(void)

{



  // Receive each packet, dump it out, and send it back
  // if there is data ready
  if ( radio.available() )
  {
    // Dump the payloads until we've gotten everything

    char got_kore_info;
    bool done = false;

    while (!done)
    {

      /*

       //Distance sensor - If less than 10 cm to obj, turn around!
       
       int read_frontSensor = analogRead(frontSensor);
       
       int result_frontSensor = (4800/(read_frontSensor - 20));
       
       
       
       if (result_frontSensor <= 10) {
       
       char got_kore_info = 'A';
       
       }
       
       //End of obj turn around
       
       */



      // Fetch the payload, and see if this was the last one.

      done = radio.read( &got_kore_info, sizeof(char) );



      // Spew it

      printf("Got command '%c'\n\r",got_kore_info);



      // Delay just a little bit to let the other unit

      // make the transition to receiver

      delay(20);





      // First, stop listening so we can talk

      radio.stopListening();


      String cmd_msg;

      // decode the received "køre info"
      switch (got_kore_info)

      {

      case '8':

        forwards();

        cmd_msg = "Forwards, Success";
        radio.write(cmd_msg, sizeof(String));

        break;



      case '2':

        backwards();

        cmd_msg = "Backwards, Success";
        radio.write(cmd_msg, sizeof(String));

        break;



      case '5':

        around();

        cmd_msg = "Turning Around, Success";
        radio.write(cmd_msg, sizeof(String));

        break;



      case '0':

        stopper();

        cmd_msg = "Stopping, Success";
        radio.write(cmd_msg, sizeof(String));
       
        break;
      }


      delay(2500);





    }



    // Send the final one back.

    radio.write( &got_kore_info, sizeof(char) );



    // Now, resume listening so we catch the next packets.

    radio.startListening();



  }

}



void forwards(){

  printf("Forwards\n\r");

  digitalWrite(right02, LOW);

  digitalWrite(right01, HIGH);

  digitalWrite(left02, LOW);

  digitalWrite(left01, HIGH);

}



void backwards(){

  printf("Backwards\n\r");

  digitalWrite(right01, LOW);

  digitalWrite(right02, HIGH);

  digitalWrite(left01, LOW);

  digitalWrite(left02, HIGH);

}



void around(){

  printf("Around\n\r");

  digitalWrite(right01, LOW);

  digitalWrite(right02, HIGH);

  digitalWrite(left02, LOW);

  digitalWrite(left01, HIGH);



}



void stopper(){

  printf("Stop\n\r");

  digitalWrite(right01, LOW);

  digitalWrite(right02, LOW);

  digitalWrite(left02, LOW);

  digitalWrite(left01, LOW);

}

Og det ser ud til at den virker uden problemer og uden capacitor (Konsendsator), både på sender og modtager.
Man skal dog ikke være sååååå ivrig efter at sende samme signal 100000 gange i træk.

Selve koden har jeg udkommenteret:
Kode:
  // Receive each packet, dump it out, and send it back
  // if there is data ready
  if ( radio.available() )
  {
  }

Af den grund at den faktisk modtager og sender oftere end den gjorde før.

..
Min 'MOD' Skulle have været at jeg ville sende String kommentar til Senderen (PC'eren), så man kan se response, men også for at teste sensor af på pc'eren.

Tanken er som den hele tiden har været, Earnst fortæller hvor langt der er til forhindringen, også finder pc'en ud af at komme uden om forhindringen, ved at trans-recive imellem Earnst og PC.

Hjælp søges.

Mvh. Danni Hansen.

27
Arduino & Lign. / Nokia 5110 og Arduino Nano
« Dato: December 17, 2014, 12:15:03 »
Hej 'DEF'

Sidder med et Nokia 5110 LCD display, koblet på Arduino Nano.

Lader dog til at jeg mangler en CD4050 som skal være der. Eller?
http://forums.4fips.com/viewtopic.php?f=3&t=1086

Nogen der kan rådgive?
(Og/eller hvis der er nogen der ligger inde med en enkelt CD4050 de kunne undvære? Så har jeg også lidt bytte ting :) )

28
Generel Elektronik / Standart kompoenter og brugen af breadboards
« Dato: December 04, 2014, 14:47:44 »
Hej folkens.

Har 2 spørgsmål, det ene er at jeg godt kunne bruge en liste over 'standart' komponenter som bare ikke må mangle i ens sortiment, nogen der har forslag til det?

Det andet spørgsmål er, om jeg er den eneste der faktisk benytter sig af breadboard til at prøve sig frem med? Eller om alle er gået over til det teknisk Yenka mv?

Tak :)

29
Artikler / Motor styrring afhængig af solstyrke
« Dato: November 24, 2014, 15:45:10 »
Hej 'DEF'.

En kort artikel om koden bag 'Motor styrring afhængig af solstyrke'.

Historie:
Idé'en var at lave en gardin ned/op-ruller, som reagere afhængig af solens styrke.

Martialer:
1 Arduino Board (Brugte selv Arduino Uno R3)
1 LDR komponent og 1k Ohm modstand
1 L9110S (Til motor styrring)
Du kan tillægge et Ethernet Shield hvis du ønsker dine informationer over LAN/WAN

Koden ses her:

Kode:
int sensorPin = A0;
int sensorValue;
int sensorValueLAST;
int motorpinA = 7;
int motorpinB = 8;
boolean up, down;

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

void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);
  Serial.println(sensorValue);
 
    if(sensorValueLAST < sensorValue){
      up = true;
    } else {
      up = false;
    }
 
  if(up == true){
    motorUP();
    Serial.println("Motor UP");
    up = true;
  }
 
  if(up == false){
    motorDOWN();
    Serial.println("Motor DOWN");
    up = false;
  }
  delay(2500);
 
  sensorValueLAST = sensorValue;
}

void motorUP(){
 digitalWrite(motorpinA, HIGH);
 digitalWrite(motorpinB, LOW);
}

void motorDOWN(){
 digitalWrite(motorpinA, LOW);
 digitalWrite(motorpinB, HIGH); 
}

Opsætningen er nem:
LDR opsætningen på Arduino (Sørg for at den ene rigtige pin er i A0 på arduino):

Om du bruger 5v eller 3.3v virker til at reagere ens.

På din L9110S skal du bruge 4 pins, motor A motor B også vcc og gnd
Gnd = minus
VCC = 5v
motorA = pin 7
motorB = pin 8

Så nemt er det.

Billedet er taget af mig.

Yderligere info ville være at man måske pillede lidt ved koden så den passede 110% nøjeagtig.

30
Generel Elektronik / F-Siemens Amilo A1645 batteri board mv.
« Dato: Oktober 14, 2014, 18:05:51 »
Hey folkens.

Jeg har den overnævnte bærbar på lager, som bruges som en simpel hjemmeside fremvisning.
Dog har jeg lidt problemer, hvis strømen går der hvor den står, så ryger data'en ret hurtigt, da batteriet er helt flad.

Jeg overvejede så (Frem for at skulle købe nyt batteri) at finde et board som passer i stikket til bærbaren også tilkoble et RC batteri eller lign, måske udvikle det til at det kunne holde nogle timer, også i tilfælde af at det originale batteri pludseligt også dør og ikke kan erstattes længere.

Lidt ligesom her:
http://bunniefoo.com/novena/novena_batt_labels.jpg

Kan dog ikke finde noget som passer til Amilo A1645 :/

Nogen forslag til hvordan jeg får denne bærbar lavet om til en strømbesparende men med backup power, til webserver?

Sider: 1 [2] 3 4 ... 8