Sida 1 av 2

Arduino, IR och USB

Postat: 12 mars 2013, 14:04:40
av cazz
Efter har jobbat med ett projekt att skapa en fjärrkontroll med knappar
http://www.righto.com/2009/08/multi-pro ... brary.html

Så var det dags att styra sin Arduino från sin dator
http://www.instructables.com/id/Using-V ... duino-Uno/

Har fungerat perfekt

Men när man försöker lägga ihop dessa två så går det inte.
Jag misstänker boven i dramat är båda använder serial.

Kod: Markera allt

#include <IRremote.h>
 
IRsend irsend;

unsigned int PowerOn[68] = {9000,4400,600,1600,650,1600,600,1650,........};
unsigned int Source[68] = {9000,4400,600,1650,600,1600,650,1600,650,450,650,500,600,500,600,..........};
 
void setup()
{
	Serial.begin(9600);
        pinMode(ledPin, OUTPUT); // set LED as output
        digitalWrite(ledPin, LOW); //turn off LED

}
 
void loop() {

while (Serial.available() == 0); 
int val = Serial.read() - '0'; 

if (val == 1) { 
        irsend.sendRaw(PowerOn,68,38);
}
else if (val == 0) 
{
         irsend.sendRaw(Source,68,38);
         delay(500); 
}
else // if not one of above command, do nothing
{
}
 
}


Vet inte riktigt hur man ska lösa detta problem??

Re: Arduino, IR och USB

Postat: 12 mars 2013, 14:16:57
av sodjan
Jag har inget svar på själv frågan, men går det inte
att formattera dina arrayer på något annat sätt ?
Typ:

Kod: Markera allt

unsigned int PowerOn[68] = {9000,4400,600,1600,650,1600,600,1650,600,500,600,500,650,450,650,450,
                            650,1600,650,450,650,1600,600,1650,600,1600,650,500,600,500,600,
                            1650,600,500,600,1600,650,1600,650,1600,600,500,650,1600,600,
                            500,600,500,650,450,650,500,600,500,600,500,600,1650,600,500,
                            600,1650,600,1600,650,1600,650};
unsigned int Source[68] = {9000,4400,600,1650,600,1600,650,1600,650,450,650,500,600,500,600,500,
                           600,1650,600,500,600,1650,600,1600,650,1600,600,500,650,450,650,
                           1600,600,500,650,450,650,500,600,500,600,500,600,1650,600,500,
                           600,500,650,450,650,1600,600,1650,600,1600,650,1600,650,450,
                           600,1650,650,1600,600,1600,650};

Re: Arduino, IR och USB

Postat: 12 mars 2013, 14:19:28
av cazz
Kanske, kanske inte, jag kör som de andra när det gäller RAW.
och så länge det fungerar och inte är i vägen så struntar jag i det :)

Re: Arduino, IR och USB

Postat: 12 mars 2013, 14:22:50
av PHermansson
Vad är det som inte fungerar? Ska inte vara några större problem att få det där att lira.

Re: Arduino, IR och USB

Postat: 12 mars 2013, 14:24:35
av sodjan
Det fungerar säkert med det *ser* skit ut! :-)
Samt att det ställer till formatteringen på tråden
vilket det brukar skrikas högt kring... :-)

Sen så undrar jag som PHermansson, *vad* är det som inte fungerar?

Re: Arduino, IR och USB

Postat: 12 mars 2013, 14:48:53
av cazz
PHermansson skrev:Vad är det som inte fungerar? Ska inte vara några större problem att få det där att lira.
Händer inget, nanna nothing.

Fast jag ska erkänna det är något skumt??

Jag testade denna kod och inget händer

Kod: Markera allt

#include <IRremote.h>

IRsend irsend;

unsigned int PowerOn[68] = {9000,4400,600,1600,650,1600,..............};
unsigned int Source[68] = {9000,4400,600,1650,600,500,....};

void setup()
{
   Serial.begin(9600);
}

void loop() {

 irsend.sendRaw(PowerOn,68,38);

}

3 på min UNO (Där jag jobbade först med) måste ju vara samma som Pro Micro??

Re: Arduino, IR och USB

Postat: 12 mars 2013, 15:03:04
av sodjan
"3" vadå ??

Re: Arduino, IR och USB

Postat: 12 mars 2013, 15:12:47
av PHermansson
D3, utgång 3, som IR-dioden ska kopplas till enligt biblioteket som används.

Har du kollat med mobilkameran om ir-dioden blinkar?

Re: Arduino, IR och USB

Postat: 12 mars 2013, 15:14:09
av PHermansson
Ett exempel som funkar med en MicroPro:

Kod: Markera allt

#include <IRremote.h>
IRsend irsend;

void setup() {
  pinMode(13, OUTPUT);     
}

void loop() {
   // Kontrollera om det finns nya data på serieporten.
   if (Serial.available() > 0) {
      // Om det finns, läs in dem.
      inByte = Serial.read();
        
      // Kontrollera om den byte som lästs är lika med ”0x70”, vilket motsvarar bokstaven ”p”.
      if (inByte==0x70) { 
         // Bokstaven p står för Power on/off, skriv ”power” till terminalen.
         Serial.write("Power\n");
         // Skicka Ir-koden för Power on/off
         irsend.sendNEC(0x8322E11E, 32);
      }
   }
}
Ska kolla vart jag kopplat IR-dioden, men då måste jag resa på mig...

Re: Arduino, IR och USB

Postat: 12 mars 2013, 15:39:40
av cazz
hmm fungerar inte ditt script

och vad jag kan se med mobilkameran är att mitt exempel så visas det inget på LED???

SKUMT

Re: Arduino, IR och USB

Postat: 12 mars 2013, 15:46:35
av PHermansson
Jag har min IR-diod på pinne 3 på en Pro Micro. Har du kollat noga med kameran? Hur har du kopplat?

Re: Arduino, IR och USB

Postat: 12 mars 2013, 15:56:44
av cazz
Pin 3 - Motstånd (100R) - LED - GND

Re: Arduino, IR och USB

Postat: 12 mars 2013, 16:05:04
av PHermansson
Kör du Micron på 3,3 volt? Annars ser ju allt rätt ut.

Re: Arduino, IR och USB

Postat: 12 mars 2013, 16:22:06
av cazz
min är på 5V

Kollade under innan innan jag skickade över coden när jag testade den "vanliga" LED och då ville den veta om det var 3.3 eller 5V och då tittade jag under och 5V var markerad.

När jag körde din kod så klagade den på inByte.

Misstänker man måste sätta en "int inByte" i början typ men nu jag jag inte tillgång till den fören imorgon.

Re: Arduino, IR och USB

Postat: 12 mars 2013, 19:10:18
av PHermansson
Jo det får du göra, det borde vart med där. Kolla noga med mobilen om det blinkar, du måste hålla den rakt in mot dioden.