Začínám s Arduinem, první pokus

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
PCmaniac99
Příspěvky: 749
Registrován: 07 úno 2008, 01:00
Bydliště: Jablonec nad Nisou

Začínám s Arduinem, první pokus

#1 Příspěvek od PCmaniac99 »

Tak jsem jsi taky objednal to arduino UNO. Klon z číny s celou krabicí a nějakým základním vybavením.

A hned mě napadlo k čemu ho využít, našel jsem RC loď bez ovládání. Tak vyzkouším ovládání pomocí IR ovladače doma v bazénu, na větší plochu se s tím neodvážím kuli dosahu IR. No a než mi arduino příjde tak jsem zkusil v simulátoru něco sesmolit a chodí to.
Pokud to bude chodit i ve skutečnosti tak pouvažuji nad přestavbou na wi-fi nebo bluetooth a ovládání mobilem.

Jinak místo 9V bude Li-ion akupack 7,4V.

Chtěl bych vás poprosit o kontrolu. A pokud máte lepší nápad jak vyřešit ovládání servomotoru pomocí IR ovladače, tak budu rád. Je to můj první pokus s programováním.

Kód: Vybrat vše

#include <Servo.h>

#include <IRremote.h>

Servo servo;

int ControlPin = 6;

int MotorPin1 = 8;

int MotorPin2 = 4;

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup(){
  irrecv.enableIRIn();
  
  Serial.begin(9600);
  
  pinMode(MotorPin1, OUTPUT);
  
  pinMode(MotorPin2, OUTPUT);
  
  pinMode(ControlPin, OUTPUT);

  servo.attach(9);
}

void loop(){
  
  
  
  if (irrecv.decode(&results)){
        
    switch(results.value){
          case 0xFD807F: //Keypad button "Vpřed (volume +)"
          analogWrite(controlpin, 50);
          digitalWrite(MotorPin1, HIGH);
      	  digitalWrite(MotorPin2, LOW);
     	  delay(5);
          }

     switch(results.value){
          case 0xFDA05F: //Keypad button "Pause, zastaví motor"
          digitalWrite(MotorPin1, LOW);
      	  digitalWrite(MotorPin2, LOW);
     	  delay(5);
          }   
    
    
    switch(results.value){
          case 0xFD906F: //Keypad button "Vzad (volume -)"
          analogWrite(ControlPin, 50);
          digitalWrite(MotorPin1, LOW);
          digitalWrite(MotorPin2, HIGH);
          delay(5);
          }
       
    switch(results.value){
          case 0xFD08F7: //Keypad button "1"
          analogWrite(ControlPin, 90);
     	  delay(5);
          }   
   
    switch(results.value){
          case 0xFD8877: //Keypad button "2"
          analogWrite(ControlPin, 150);
     	  delay(5);
          }   
    
    switch(results.value){
          case 0xFD48B7: //Keypad button "3"
          analogWrite(ControlPin, 255);
     	  delay(5);
          }   
    
    switch(results.value){
          case 0xFD609F: //Keypad button "Vlevo"
          servo.write(180);
     	  delay(250);
          servo.write(89);
          }   
    
    switch(results.value){
          case 0xFD20DF: //Keypad button "Vpravo"
          servo.write(0);
     	  delay(250);
          servo.write(89);
          }
     
    Serial.println(results.value, HEX);
        irrecv.resume(); 
  }
}
Přílohy
lodka ardu.png

Uživatelský avatar
Cowley
Příspěvky: 3087
Registrován: 04 úno 2005, 01:00

#2 Příspěvek od Cowley »

Ahoj, poskladej jinak to vlastni napajeni vsech prvku, hlavne jakmile prejdes na jiny typ napajeni.

Uživatelský avatar
jezevec
Hlavní moderátor
Hlavní moderátor
Příspěvky: 5414
Registrován: 13 čer 2004, 02:00
Bydliště: Břeclavsko
Kontaktovat uživatele:

#3 Příspěvek od jezevec »

Ty Arduino malůvky, to je něco příšernýho...

Uživatelský avatar
PCmaniac99
Příspěvky: 749
Registrován: 07 úno 2008, 01:00
Bydliště: Jablonec nad Nisou

#4 Příspěvek od PCmaniac99 »

Cowley: Jestli máš na mysli to "drátování", tak až to budu stavět, začnu na nepájivém poli ale pro lepší přehlednost jsem ho do simulace nedával.

Jezevec: Ten tinker umí export do .brd pro eagle, možná by to pak šlo převést na klasické schéma.

EDIT: Ten print na serial tam je jen dočasně kuli programování, abych věděl jaké tlačítko na ovladači má jakou hodnotu.

Uživatelský avatar
Cowley
Příspěvky: 3087
Registrován: 04 úno 2005, 01:00

#5 Příspěvek od Cowley »

To ne, tyhle maluvky me nechavaji klidnym :)
Jde o napajeni UNA. Bud pres Jacka a nebo Vin.
Taky 7805 potrebuje vetsi Vdrop.
No a servo neni vhodne krmit z 5V vytvorenych z UNO.

Z 5V z UNA nech napajeny jen ten IR prijimac.

Uživatelský avatar
PCmaniac99
Příspěvky: 749
Registrován: 07 úno 2008, 01:00
Bydliště: Jablonec nad Nisou

#6 Příspěvek od PCmaniac99 »

To napájení serva mě napadlo že nebude uplně ok z una. Místo stabilizátoru použiju nějakej step down měnič. A ano napájení una bude přes Vin nebo jack, to by mě asi i napadlo kdybych to stavěl, v simulátoru ta možnost asi není.

Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“