Arduino

Hardware geleverd door Arduino
Gebruikers-avatar
Berichten: 700
Geregistreerd: 05 Mrt 2012, 21:56
Woonplaats: Appingedam

Re: Arduino

Berichtdoor pjh » 11 Dec 2012, 22:28

Eerst even over je software: Goed gedaan. Maar die "kleine fout" die ik eerder noemde staat er nog in.
Het werkt misschien wel wat je hebt geschreven, maar misschien is het volgende je niet helemaal duidelijk (belediging niet bedoeld :roll: ):
==> je analyseert de code niet wanneer hij gegenereerd wordt, maar erna.
Volgens mij is het duidelijker om een verandering door te voeren op het moment dat een druk op de afstandsbediening wordt gedetecteerd. En dat is Binnen de eerste if...{} van de loop. Als aan die if...{} wordt voldaan, dan is er blijkbaar op een knop gedrukt. DAAR moet je je knop-analyse-en-laat-een-ledje-branden-routine in zetten.

Kom ik nog op terug....
En verder:

in totaal is het de bedoeling om min 12 ledjes aan te sturen namelijk :
* voor en achterlichten (2x 3 mm wit en 2x 3mm rood)
* pinkers links en rechts ( 4x 3mm oranje pink led)
* rem lichten achter (2x 3mm rood)
* mistlichten (2x 5mm wit)


De meeste LEDjes doen 20 mA. Bij 12 LEDjes heb je dus 20 * 12 = 240 mA.
Hieronder een tabel uit de datasheet van de ATMega328p-up (de microcontroller op de arduino UNO)
Afbeelding

Conclusie:
Twaalf LEDjes continue laten branden via de Arduino zal MISSCHIEN net gaan.
Ofwel: geen aanrader.

Wat dan wel?
Meerdere oplossingen:
1. Ledjes niet allemaal tegelijk aan
2. Wel alle LEDjes aan, maar dan eigenlijk heel snel achter elkaar aan en uit (POV = persistence of vision)
3. Separate IC gebruiken.

Optie 3 is natuurlijk 'the way to go', maar misschien nog wat ver van je bed.
Ik wil je hier wel mee op weg helpen, maar een verdere precisering van je doel zou daarin wel makkelijk zijn.
Ik neem namelijk aan dat je uiteindelijk meerdere modellen van dit spul wil voorzien.
En als die aanname klopt, wil je een systeem, dat je makkelijk kunt aanpassen en uitbreiden, en waarin de uiteindelijke hardware tot een minimum wordt beperkt.

Er zijn denk ik twee 'populaire' opties, om meerdere LEDjes te besturen met maar een paar Arduino-pinnetjes.
Optie A: de max7219 (http://youtu.be/B2Vu69B6FfU)
hiermee krijg je 8 anodes en 8 cathodes, waartussen je 8x8 = 64 gemultiplexte LEDjes van 20mA individueel kunt aansturen.
Optie B: de TLC5940nt (http://youtu.be/FehBLNHMlfo)
hiermee krijg je 16 kanalen met 4095 grijswaarden. Wanneer je er drie op een RGB zet, heb je 24 bits kleur (0xFFFFFFFFF).

Optie B lijkt goed voor je project.
voordelen:
- 16 LEDjes lijkt genoeg
- LEDje niet aan/uit maar in 4096 stapjes van aan naar uit.
- je kunt ze als een ketting aaneen rijgen (16-32-48 etc ledjes/kanalen) zonder dat het je meer arduino pinnen kost
- stroom loopt via IC en niet via microcontroller.
- met één weerstand, regel je alles in (scheelt veel ruimte, 15 weerstandjes!)
- ze kosten nog geen euro op eBay.
- veel tutorials op internet.

Ik heb de microcontroller en de TLC5940 samen op centimeter papier gezet.
Kun jij kijken of je het in de kofferbak(jes) kwijt kan.

Afbeelding
Succes. Hoop niet je te veel te overladen met 'tips' lol -:)

Advertisement

Berichten: 30
Geregistreerd: 25 Nov 2012, 21:05

Re: Arduino

Berichtdoor FL3x » 16 Dec 2012, 16:08

wel heb aan de hand van deze code
#include <IRremote.h>

int RECV_PIN = 2;

int led1 = 10;
int led2 = 5;

int knop1;
int knop2;

IRrecv irrecv(RECV_PIN);
decode_results results;

int reading;

void setup() {
Serial.begin (9600);
Serial.println("Comenzamos Lectura");
irrecv.enableIRIn();
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}

void loop(){
if (irrecv.decode(&results)) {
Serial.println(results.value);
irrecv.resume();
switch (results.value){
case 2011249391:
knop1=1-knop1;
break;
case 2011249392:
knop2=1-knop2;
break;
}
Serial.print(knop1);
Serial.print("- ");
Serial.println(knop2);

digitalWrite(led1,knop1);
digitalWrite(led2,knop2);
}
}

mijn uno werkend gekregen lijk ik wou :D
Code: Alles selecteren
#include <IRremote.h>

int RECV_PIN = 2;

int voor = 3;
int achter = 4;
int mist = 5;
int pinkl = 6;
int pinkr = 7;
int pink4 = 8;
int rem =9;


int knop1;
int knop2;
int knop3;
int knop4;
int knop5;
int knop6;
int knop7;
int knop8;
int knop9;
int knop0;

IRrecv irrecv(RECV_PIN);
decode_results results;

int reading;

void setup() {
  Serial.begin (9600);
  Serial.println("Comenzamos Lectura");
  irrecv.enableIRIn();
  pinMode(voor, OUTPUT);
  pinMode(achter, OUTPUT);
  pinMode(mist, OUTPUT);
  pinMode(pinkl, OUTPUT);
  pinMode(pinkr, OUTPUT);
  pinMode(pink4, OUTPUT);
  pinMode(rem, OUTPUT);
}

void loop(){
  if (irrecv.decode(&results)) {
    Serial.println(results.value);
    irrecv.resume();
    switch (results.value){
    case 16593103:
      knop0=1-knop0;
      break;
    case 16582903:
      knop1=1-knop1;
      break;
    case 16615543:
      knop2=1-knop2;
      break;
       case 16599223:
      knop3=1-knop3;
      break;
       case 16591063:
      knop4=1-knop4;
      break;
       case 16623703:
      knop5=1-knop5;
      break;
       case 16607383:
      knop6=1-knop6;
      break;
       case 16586983:
      knop7=1-knop7;
      break;
       case 16619623:
      knop8=1-knop8;
      break;
       case 16603303:
      knop9=1-knop9;
      break;
    }
    Serial.print(knop1);
    Serial.print("- ");
    Serial.println(knop2);
    Serial.print("- ");
    Serial.println(knop3);
    Serial.print("- ");
    Serial.println(knop4);
    Serial.print("- ");
    Serial.println(knop5);
    Serial.print("- ");
    Serial.println(knop6);
    Serial.print("- ");
    Serial.println(knop7);
    Serial.print("- ");
    Serial.println(knop8);
    Serial.print("- ");
    Serial.println(knop9);

    digitalWrite(voor,knop0);
    digitalWrite(achter,knop0);
    digitalWrite(mist,knop1);
    digitalWrite(pinkl,knop2);
    digitalWrite(pinkr,knop3);
    digitalWrite(pink4,knop4);
    digitalWrite(rem,knop5);
  }
}


moet er alleen nog achter komen hoe ik pink4,knop4 aan de praat krijg.
deze zou: int pinkl = 6;
int pinkr = 7; tesammen moeten laten branden.

is ondertussen getest op de uno en de nano

filmpje van de nano
http://www.youtube.com/watch?v=jHxdNmj3PJM&feature=BFp&list=PLpFc0zMHm_ueJRRwuoUN_z-8p03sJ8pio

Gebruikers-avatar
Berichten: 700
Geregistreerd: 05 Mrt 2012, 21:56
Woonplaats: Appingedam

Re: Arduino

Berichtdoor pjh » 16 Dec 2012, 16:52

kijk eens of dit werkt

Code: Alles selecteren
#include <IRremote.h>

int RECV_PIN = 2;

int voor = 3;
int achter = 4;
int mist = 5;
int pinkl = 6;
int pinkr = 7;
int pink4 = 8;
int rem =9;

int knop0;
int knop1;
int knop2;
int knop3;
int knop4;
int knop5;
int knop6;
int knop7;
int knop8;
int knop9;


IRrecv irrecv(RECV_PIN);
decode_results results;

int reading;

void setup() {
  Serial.begin (9600);
  Serial.println("Comenzamos Lectura");
  irrecv.enableIRIn();
  pinMode(voor, OUTPUT);
  pinMode(achter, OUTPUT);
  pinMode(mist, OUTPUT);
  pinMode(pinkl, OUTPUT);
  pinMode(pinkr, OUTPUT);
  pinMode(pink4, OUTPUT);
  pinMode(rem, OUTPUT);
}

void loop(){
  if (irrecv.decode(&results)) {
    Serial.println(results.value);
    irrecv.resume();
    switch (results.value){
    case 16593103:
      knop0=1-knop0;
      break;
    case 16582903:
      knop1=1-knop1;
      break;
    case 16615543:
      knop2=1-knop2;
      break;
    case 16599223:
      knop3=1-knop3;
      break;
    case 16591063:
      knop4=1-knop4;
      break;
    case 16623703:
      knop5=1-knop5;
      break;
    case 16607383:
      knop6=1-knop6;
      break;
    case 16586983:
      knop7=1-knop7;
      break;
    case 16619623:
      knop8=1-knop8;
      break;
    case 16603303:
      knop9=1-knop9;
      break;
    }
    Serial.print(knop1);
    Serial.print("- ");
    Serial.println(knop2);
    Serial.print("- ");
    Serial.println(knop3);
    Serial.print("- ");
    Serial.println(knop4);
    Serial.print("- ");
    Serial.println(knop5);
    Serial.print("- ");
    Serial.println(knop6);
    Serial.print("- ");
    Serial.println(knop7);
    Serial.print("- ");
    Serial.println(knop8);
    Serial.print("- ");
    Serial.println(knop9);

    digitalWrite(voor,knop0);
    digitalWrite(achter,knop0);
    digitalWrite(mist,knop1);
    digitalWrite(pinkl,knop2);
    digitalWrite(pinkr,knop3);
    digitalWrite(rem,knop5);
   
    if(knop4){
      digitalWrite(pinkl, HIGH);
      digitalWrite(pinkr, HIGH);
    }
    else{
      digitalWrite(pinkl, LOW);
      digitalWrite(pinkr, LOW);
    }
     
   
  }
}

Berichten: 30
Geregistreerd: 25 Nov 2012, 21:05

Re: Arduino

Berichtdoor FL3x » 16 Dec 2012, 17:50

pjh schreef:kijk eens of dit werkt

Code: Alles selecteren
#include <IRremote.h>

int RECV_PIN = 2;

int voor = 3;
int achter = 4;
int mist = 5;
int pinkl = 6;
int pinkr = 7;
int pink4 = 8;
int rem =9;

int knop0;
int knop1;
int knop2;
int knop3;
int knop4;
int knop5;
int knop6;
int knop7;
int knop8;
int knop9;


IRrecv irrecv(RECV_PIN);
decode_results results;

int reading;

void setup() {
  Serial.begin (9600);
  Serial.println("Comenzamos Lectura");
  irrecv.enableIRIn();
  pinMode(voor, OUTPUT);
  pinMode(achter, OUTPUT);
  pinMode(mist, OUTPUT);
  pinMode(pinkl, OUTPUT);
  pinMode(pinkr, OUTPUT);
  pinMode(pink4, OUTPUT);
  pinMode(rem, OUTPUT);
}

void loop(){
  if (irrecv.decode(&results)) {
    Serial.println(results.value);
    irrecv.resume();
    switch (results.value){
    case 16593103:
      knop0=1-knop0;
      break;
    case 16582903:
      knop1=1-knop1;
      break;
    case 16615543:
      knop2=1-knop2;
      break;
    case 16599223:
      knop3=1-knop3;
      break;
    case 16591063:
      knop4=1-knop4;
      break;
    case 16623703:
      knop5=1-knop5;
      break;
    case 16607383:
      knop6=1-knop6;
      break;
    case 16586983:
      knop7=1-knop7;
      break;
    case 16619623:
      knop8=1-knop8;
      break;
    case 16603303:
      knop9=1-knop9;
      break;
    }
    Serial.print(knop1);
    Serial.print("- ");
    Serial.println(knop2);
    Serial.print("- ");
    Serial.println(knop3);
    Serial.print("- ");
    Serial.println(knop4);
    Serial.print("- ");
    Serial.println(knop5);
    Serial.print("- ");
    Serial.println(knop6);
    Serial.print("- ");
    Serial.println(knop7);
    Serial.print("- ");
    Serial.println(knop8);
    Serial.print("- ");
    Serial.println(knop9);

    digitalWrite(voor,knop0);
    digitalWrite(achter,knop0);
    digitalWrite(mist,knop1);
    digitalWrite(pinkl,knop2);
    digitalWrite(pinkr,knop3);
    digitalWrite(rem,knop5);
   
    if(knop4){
      digitalWrite(pinkl, HIGH);
      digitalWrite(pinkr, HIGH);
    }
    else{
      digitalWrite(pinkl, LOW);
      digitalWrite(pinkr, LOW);
    }
     
   
  }
}


heb em juist getest maar dit geeft een probleem
bij het induwen van knop 2 of knop 3 gebeurt er niks.
knop 4 werkt wel

http://www.youtube.com/watch?v=TEhqsPiaNug

Gebruikers-avatar
Berichten: 700
Geregistreerd: 05 Mrt 2012, 21:56
Woonplaats: Appingedam

Re: Arduino

Berichtdoor pjh » 16 Dec 2012, 19:08

Probeer dit eens.
Code: Alles selecteren
    #include <IRremote.h>

    int RECV_PIN = 2;

    int voor = 3;
    int achter = 4;
    int mist = 5;
    int pinkl = 6;
    int pinkr = 7;
    int pink4 = 8;
    int rem =9;

    int knop0;
    int knop1;
    int knop2;
    int knop3;
    int knop4;
    int knop5;
    int knop6;
    int knop7;
    int knop8;
    int knop9;


    IRrecv irrecv(RECV_PIN);
    decode_results results;

    int reading;

    void setup() {
      Serial.begin (9600);
      Serial.println("Comenzamos Lectura");
      irrecv.enableIRIn();
      pinMode(voor, OUTPUT);
      pinMode(achter, OUTPUT);
      pinMode(mist, OUTPUT);
      pinMode(pinkl, OUTPUT);
      pinMode(pinkr, OUTPUT);
      pinMode(pink4, OUTPUT);
      pinMode(rem, OUTPUT);
    }

    void loop(){
      if (irrecv.decode(&results)) {
        Serial.println(results.value);
        irrecv.resume();
        switch (results.value){
        case 16593103:
          knop0=1-knop0;
          break;
        case 16582903:
          knop1=1-knop1;
          break;
        case 16615543:
          knop2=1-knop2;
          break;
        case 16599223:
          knop3=1-knop3;
          break;
        case 16591063:
          knop4=1-knop4;
          break;
        case 16623703:
          knop5=1-knop5;
          break;
        case 16607383:
          knop6=1-knop6;
          break;
        case 16586983:
          knop7=1-knop7;
          break;
        case 16619623:
          knop8=1-knop8;
          break;
        case 16603303:
          knop9=1-knop9;
          break;
        }
        Serial.print(knop1);
        Serial.print("- ");
        Serial.println(knop2);
        Serial.print("- ");
        Serial.println(knop3);
        Serial.print("- ");
        Serial.println(knop4);
        Serial.print("- ");
        Serial.println(knop5);
        Serial.print("- ");
        Serial.println(knop6);
        Serial.print("- ");
        Serial.println(knop7);
        Serial.print("- ");
        Serial.println(knop8);
        Serial.print("- ");
        Serial.println(knop9);

        digitalWrite(voor,knop0);
        digitalWrite(achter,knop0);
        digitalWrite(mist,knop1);
        digitalWrite(rem,knop5);
       
        if(knop4){
          digitalWrite(pinkl, HIGH);
          digitalWrite(pinkr, HIGH);
        }
        else{
        digitalWrite(pinkl,knop2);
        digitalWrite(pinkr,knop3);
        }
         
       
      }
    }

Berichten: 30
Geregistreerd: 25 Nov 2012, 21:05

Re: Arduino

Berichtdoor FL3x » 16 Dec 2012, 19:31

het werkt !!!
nu werken alle functies die ik wil gebruiken.
bedankt voor de hulp.

nu kan ik stilletjes aan gaan beginnen met dit in te bouwen in een modelauto.
hopelijk duurt het niet al te lang meer eer mijn pinkledjes aankomen en kan ik mijn projectje snel afmaken :D

Gebruikers-avatar
Berichten: 700
Geregistreerd: 05 Mrt 2012, 21:56
Woonplaats: Appingedam

Re: Arduino

Berichtdoor pjh » 16 Dec 2012, 20:53

Helemaal goed!
Houd ons op de hoogte van je vorderingen.
Ergens een keer een filmpje met het eindresultaat zou ook leuk zijn.
Blij dat ik helpen kon.

En Oh ja, mocht je niet genoeg ruimte in je auto hebben, ik wil alsnog een klein arduinootje voor je maken.

Berichten: 30
Geregistreerd: 25 Nov 2012, 21:05

Re: Arduino

Berichtdoor FL3x » 10 Aug 2013, 15:06

na lange tijd word het tijd voor een kleine update

Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding

de lak is niet zo mooi uitgekomen deze zal ik nog eens opnieuw moeten doen :oops:

hier ook klein filmpje van hoe et er nu bij staat

http://www.youtube.com/watch?v=w5d8RX409AU

Gebruikers-avatar
Berichten: 700
Geregistreerd: 05 Mrt 2012, 21:56
Woonplaats: Appingedam

Re: Arduino

Berichtdoor pjh » 10 Aug 2013, 18:12

Leuk te zien hoe alles bij elkaar komt.
Het doet me denken aan een ander project hier op het forum.
Staat onder [theekransje] [nieuw en nooby..]
Daar was ene DNALOR bezig met papercraft.
Hij bouwde ook LEDjes in.
Waar het mij hier om gaat is dat hij voor het dashboard "lichtsprieten" van een speeltje van de Action (de winkel) gebruikte .
Hier nogmaals zijn filmpje: http://www.youtube.com/watch?v=ovaIq20IyK0

Vorige

Terug naar Arduino hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 34 gasten