Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   44 / 850
(#) Dániel X válasza szikorapéter hozzászólására (») Aug 20, 2014 /
 
Ezt hogy nincs megadva low érték kifejtenéd bővebben?
(#) szikorapéter válasza Dániel X hozzászólására (») Aug 20, 2014 /
 
Mint írtam satu laikus vagyok a témában... Én úgy gondolom hogy először kell a lednek egy 0 érték (nem világít) hogy aztán 1 értéket tudjon beállítani a programod szerint. Mivel nem adtál meg 0 értéket így a definiálásnál autómatikusan 1-et állított be. A definiálást úgy értem amikor beírtad hogy a led a 7-es lábon van. remélem nem írtam nagy badarságot majd a kollegák kijavítanak ha igen.
(#) mikrokapcsolo válasza Dániel X hozzászólására (») Aug 20, 2014 /
 
Szia! Azért van így, mert oké, hogy meg van a 100 alatti érték, akkor bekapcsol a led, de nincs ami kikapcsolja. Próbáld így:
  1. int led = 13;
  2.     int pot = 0;
  3.     int val = 0;
  4.     void setup(){
  5.       pinMode(led, OUTPUT);
  6.       Serial.begin(9600);  
  7.     }
  8.      
  9.     void loop(){
  10.      val = analogRead (pot);
  11.       if (val <= 100){        
  12.     digitalWrite (led, HIGH);
  13.   }
  14.   else {
  15.       digitalWrite (led, LOW);
  16.      }
  17.     Serial.println(val, DEC);  
  18.      
  19.     }
(#) szikorapéter válasza mikrokapcsolo hozzászólására (») Aug 20, 2014 /
 
A feltételezésem helyes volt akkor? Legalább tanulok egy keveset.
(#) mikrokapcsolo válasza szikorapéter hozzászólására (») Aug 20, 2014 /
 
Ha jól értem, akkor te azt szeretted volna mondani, hogy nincs olyan rész, ami LOW-ra húzza, akkor igen.
(#) szikorapéter válasza mikrokapcsolo hozzászólására (») Aug 20, 2014 / 1
 
Legalább ma is tanultam valamit. Amúgy maga a program érdekes,mire szeretnéd használni?
(#) mikrokapcsolo válasza szikorapéter hozzászólására (») Aug 20, 2014 /
 
Én semmire, a kérdező gondolom pedig csak gyakorolgatni.
(#) Dániel X válasza mikrokapcsolo hozzászólására (») Aug 20, 2014 /
 
Köszönöm. Így már működik.
Viszont akkor mikor, milyen esetben lehet használni az If utasítást?
(#) Dániel X válasza szikorapéter hozzászólására (») Aug 20, 2014 /
 
Elsősorban gyakorlás, de felhasználható például fény hatására be vagy kikapcsolónak; ha a potmétert fotoellenállás és ellenállással alkotott feszültség osztóra cserélem.
(#) mikrokapcsolo válasza Dániel X hozzászólására (») Aug 20, 2014 / 1
 
Az IF, magyarul HA, akkor használható, amikor valami hatására valamit szeretnél, vagyis, pl:
HA a > b akkor: xy, vagyis, abban az esetben amikor a > b akkor fog az xy program futni, ellenkező esetben továbblép a program. Neked ha kell a másik állítás is, amikor ugye nem igaz, hogy a > b, akkor odaírod az ELSE részt, ami magyarul mondjuk DE HA NEM lenne. Példa:
HA a > b akkor: xy
DE HA NEM akkor: yx
Ez így fog kinézni:
Ha a > b akkor: xy
Ha b < a akkor: yx
Remélem érthető.
(#) Dániel X válasza mikrokapcsolo hozzászólására (») Aug 20, 2014 /
 
Tökéletesen érthető. Köszönöm a segítségedet.
(#) Chipmunk1960 válasza szikorapéter hozzászólására (») Aug 21, 2014 /
 
Szia, Van rajta stabilizátor, de feleslegesen ne fűtsed, mert ha elszáll, repül a panel is. Inkább tegyél még elé egy 78-, 07-09V közötti stab tokot zászlóval, az a biztos.
(#) varttina válasza arduinoforever hozzászólására (») Aug 22, 2014 /
 
Ha sikerült szóra bírnod a dekódert, kérlek oszd meg a tapasztalataidat. Szerintem mást is érdekelne itt egy Arduino köré épített rádiós kapcsolás.
(#) arduinoforever válasza varttina hozzászólására (») Aug 22, 2014 /
 
Még nem volt időm foglalkozni vele. Először is csinálni akarok egy kis panelt neki, mert kell hozzá pár alkatrész és mivel SMD méretű, így tüskesorra akarom kivezetni a lábakat, hogy próbapanelon tudjam tesztelgetni. Amint jutottam vele valamire írok!
(#) domcsidd hozzászólása Aug 26, 2014 /
 
Sziasztok ! Erre van valakinek valami jó ötlete ?

wtfspeed.png
    
(#) TavIR-AVR válasza domcsidd hozzászólására (») Aug 26, 2014 /
 
tedd fel külön a 2 képet. Semmi nem látszik rákattintva belőle.
(#) Hp41C válasza domcsidd hozzászólására (») Aug 26, 2014 /
 
Valami gyanús lehet a Servo.h állomány végén.
(#) icserny válasza TavIR-AVR hozzászólására (») Aug 26, 2014 /
 
Ne a képre, hanem a képfájl nevére kattints!
(#) Kera_Will válasza icserny hozzászólására (») Aug 26, 2014 /
 
Igen igen ez kissé "el van rontódva" a fórum "motorjában" lévő lehetőségekben. Mivel lehetne ezt jobbá tenni ezt a csatolmányos kép nézegetőt ? ...
Ez részben megoldás ...
Jobb klikk és megnyitás új lapon/ablakban ...
Ekkor nem is kell célozni a képikon vagy aláírása közt.
A hozzászólás módosítva: Aug 26, 2014
(#) domcsidd válasza Hp41C hozzászólására (») Aug 26, 2014 /
 
Az csak a kurzol , nincs ott semmi ><
(#) domcsidd hozzászólása Aug 26, 2014 /
 
Nah de valaki segítsen megérteni a problémát , mert ha egyszer ugyanaz az osztály , semmi modósítás nincs benne , akkor mégis hogyan javítsam a hibát ? O.o , vagyis hát mi a fene a hiba ?:O
(#) domcsidd hozzászólása Aug 26, 2014 /
 
Esetleg itt egy teljes kod : nem tökéletes , tesztelni még időm nemvolt , és még kezdő vagyok arduino területén :
  1. #include <Servo.h>
  2.  
  3. class Speed
  4. {
  5. public:
  6.         Speed(int speed){motor_speed=speed;};
  7.         void setSpeed(int speed){motor_speed=speed;};
  8.         int getSpeed(){return motor_speed;};
  9. private:
  10.         int motor_speed;
  11. };
  12. class servoRange
  13. {
  14. public:
  15.         servoRange(int min,int max){servo_min=min;servo_max=max; out_of_range=false;};
  16.         void setRange(int min,int max){servo_min=min;servo_max=max;out_of_range=false;};
  17.         void setRangeMin(int min){servo_min=min;out_of_range=false;};
  18.         void setRangeMax(int max){servo_max=max;out_of_range=false;};
  19.         int getRangeError(int anggle){getRangeMessage(anggle);return out_of_range;};
  20.         void getRangeMessage(int angle){if((angle<servo_min || angle>servo_max )&& out_of_range!=true) {Serial.println("Wrong ANGLE  it is out of range!-try out an other angle or specify an other.");out_of_range=true;};}
  21.         int getRangeMin(){return servo_min;};
  22.         int getRangeMax(){return servo_max;};
  23. private:
  24.         int servo_min;
  25.         int servo_max;
  26.         bool out_of_range;
  27. };
  28. Servo main1;    /*pin3 bottom*/ Speed main1s(15);       servoRange main1r(0,180);
  29. Servo main2;Servo main3;        /*pin5,pin6*/   Speed main2_3s(15);     servoRange main2_3r(20,160);
  30. Servo main4;    /*pin9*/        Speed main4s(25);       servoRange main4r(0,180);
  31. Servo main5;    /*pin10*/       Speed main5s(15);       servoRange main5r(0,180);
  32. Servo main6;    /*pin11*/       Speed main6s(15);       servoRange main6r(0,180);
  33.  
  34. volatile int pos=90;
  35. int prev_pos_1 =0 ;
  36. int prev_pos_2_3 =20 ;
  37. int prev_pos_4 =0;
  38. int prev_pos_5 =0;
  39. int prev_pos_6 =0;
  40.  
  41. int base_pos_1=prev_pos_1;
  42. int base_pos_2_3=prev_pos_2_3;
  43. int base_pos_4=prev_pos_4;
  44. int base_pos_5=prev_pos_5;
  45. int base_pos_6=prev_pos_6;
  46.  
  47. int motor =1;
  48. void servoControll(int servo,int angle);
  49. void servoMover(Servo servo,Speed MySpeed,int pos,int &prev_pos);
  50. void servoMoverDouble(Servo servo1,Servo servo2,Speed Myspeed,int pos ,int &prevpos,int one_step);
  51.  
  52.  
  53. void servoControll(int servo,int angle)
  54. {
  55.         switch(servo)
  56.         {
  57.         case 1:{servoMover(main1,main1s,angle,prev_pos_1);break; }
  58.         case 2:{servoMoverDouble(main2,main3,main2_3s,angle,prev_pos_2_3,10);break; }
  59.         //case 3:{servoMover(main3,main3s,angle,prev_pos_3);break; }
  60.         case 4:{servoMover(main4,main4s,angle,prev_pos_4);break; }
  61.         case 5:{servoMover(main5,main5s,angle,prev_pos_5);break; }
  62.         case 6:{servoMover(main6,main6s,angle,prev_pos_6);break; }
  63.         };
  64. };
  65.  
  66. void servoMover(Servo servo,Speed MySpeed,int pos,int &prev_pos)
  67. {
  68.         if(pos>prev_pos)
  69.         {
  70.           for(int c_pos = prev_pos; c_pos < pos; c_pos += 1)
  71.                 {                                
  72.                 servo.write(c_pos);            
  73.                 delay(MySpeed.getSpeed());                      
  74.                 }
  75.          }
  76.        else
  77.        {
  78.          for(int c_pos = prev_pos; c_pos > pos; c_pos -= 1)  
  79.                 {                                  
  80.                 servo.write(c_pos);              
  81.                 delay(MySpeed.getSpeed());                      
  82.                 }
  83.  }
  84. prev_pos=pos;
  85. };
  86. void servoMoverDouble(Servo servo1,Servo servo2,Speed MySpeed,int pos,int &prev_pos,int one_step)
  87. {
  88.         if(pos>prev_pos)
  89.         {
  90.           for(int c_pos = prev_pos; c_pos <= pos; c_pos += one_step)
  91.                 {                                
  92.                 servo1.write(c_pos);  
  93.                 servo2.write(c_pos);  
  94.                 delay(MySpeed.getSpeed());                      
  95.                 }
  96.          }
  97.        else
  98.        {
  99.          for(int c_pos = prev_pos; c_pos >= pos; c_pos -= one_step)  
  100.                 {                                  
  101.                 servo1.write(c_pos);  
  102.                 servo2.write(c_pos);            
  103.                 delay(MySpeed.getSpeed());                      
  104.                 }
  105.  }
  106. prev_pos=pos;
  107. };
  108.  
  109. void setup()
  110. {
  111.   Serial.begin(9600);
  112.  
  113.  
  114. }
  115.  
  116. void loop()
  117. {
  118. if (Serial.available()==4)
  119.   {
  120.   pos=((Serial.read()-48)*100);
  121.   pos=pos+((Serial.read()-48)*10);
  122.   pos=pos+((Serial.read()-48));
  123.   motor=(Serial.read()-48);
  124.  Serial.print("The value for : (");
  125.  Serial.print(motor);
  126.  Serial.print(") is :");
  127.  Serial.print(pos);
  128.  Serial.println();
  129.  
  130.   }
  131. if (Serial.available()==3)
  132.   {
  133.   pos=((Serial.read()-48)*10);
  134.   pos=pos+((Serial.read()-48));
  135.   motor=(Serial.read()-48);
  136.   Serial.print("The value for : (");
  137.  Serial.print(motor);
  138.  Serial.print(") is :");
  139.  Serial.print(pos);
  140.  Serial.println();
  141.   }
  142.  
  143. if (Serial.available()==2)
  144.   {
  145.   pos=((Serial.read()-48));
  146.   motor=(Serial.read()-48);
  147.   Serial.print("The value for : (");
  148.  Serial.print(motor);
  149.  Serial.print(") is :");
  150.  Serial.print(pos);
  151.  Serial.println();
  152.   }
  153.  
  154. if (Serial.available()==1 && Serial.read()=='o')
  155. {
  156.         Serial.println("The arm is shutting down");
  157.   servoControll(1,base_pos_1);
  158.   servoControll(2,base_pos_2_3);
  159.   servoControll(4,base_pos_4);
  160.   servoControll(5,base_pos_5);
  161.   servoControll(6,base_pos_6);
  162. }
  163. if ( Serial.available()==1 &&Serial.read()=='d')
  164. {
  165.         Serial.println("The servos are dettaching...");
  166.   main1.detach();
  167.   main2.detach();
  168.   main3.detach();
  169.   main4.detach();
  170.   main5.detach();
  171.   main6.detach();
  172. }
  173. if (Serial.available()==1 && Serial.read()=='a')
  174. {
  175.         Serial.println("The servos are attaching...");
  176.   main1.attach(3);
  177.   main2.attach(5);
  178.   main3.attach(6);  
  179.   main4.attach(9);  
  180.   main5.attach(10);
  181.   main6.attach(11);
  182. }
  183.  
  184. delay(30);
  185.  
  186. if(motor<1 || motor>6){Serial.println("Wrong motor number; it must be between (0-6)");motor=1;}
  187. else
  188. {
  189.         switch(motor)
  190.         {
  191.   // detach servos , 'cause "buzz"ing
  192.         case 1: {if(main1r.getRangeError(pos)==0){main1.attach(3);servoControll(motor,pos);main1.detach();};break;}
  193.         /*case 2: {if(main2_3r.getRangeError(pos)==0)
  194.                     {
  195.                       main2.attach(4);
  196.                       main3.attach(5);
  197.                      
  198.                       main2.write(pos);
  199.                       main3.write(180-pos);
  200.                      
  201.                       main2.detach();
  202.                       main3.detach();
  203.                       };
  204.                       break;
  205.                     }
  206.         */
  207.         case 2: {if(main2_3r.getRangeError(pos)==0){main2.attach(4);main3.attach(5);servoControll(motor,pos);main2.detach(); main3.detach();};break;}
  208.         case 4: {if(main4r.getRangeError(pos)==0){main4.attach(9); servoControll(motor,pos);main4.detach();};break;}
  209.         case 5: {if(main5r.getRangeError(pos)==0){servoControll(motor,pos);};break;}
  210.         case 6: {if(main6r.getRangeError(pos)==0){servoControll(motor,pos);};break;}
  211.         };
  212. }
  213. }
(#) andykaaa hozzászólása Aug 27, 2014 /
 
Sziasztok,
Egy Nokia 3410 LCD-vel bibelodok, ami allitolag 96x65 -os nem mint a 3310-es.
Mukodik a sima PCD8544-es es az LCD5110-es konyvtarfajlal is, de nem hasznalja ki az egesz feluletet.
Esetleg tudtok-e valami modositott peldanyt ezekbol a konyvtyarfajlokbol, ami menne a 96x65-os LCD-hez?
Az LCD5110 lenne a mefelelo mert azzal siman lehet kulombozo meretu karaktereket nyomtatni.
Koszonom.
(#) arduinoforever válasza andykaaa hozzászólására (») Aug 27, 2014 /
 
Szia! Én az 5110LCD-hez az Adafruit PCD8544-et használom, abban ha megnyitod az "adafruit_PCD8544.h" fájlt valami szövegszerkesztővel, akkor át tudod írni a "#define LCDWIDTH 84" értéket 96-ra és a "#define LCDHEIGHT 48" értéket 65-re.
Ne felejts el rámenteni!
(#) arduinoforever válasza andykaaa hozzászólására (») Aug 27, 2014 /
 
Itt a módosított "adafruit_pcd8544.h" fájl tartalma!

  1. /*********************************************************************
  2. This is a library for our Monochrome Nokia 5110 LCD Displays
  3.  
  4.   Pick one up today in the adafruit shop!
  5.  
  6. These displays use SPI to communicate, 4 or 5 pins are required to  
  7. interface
  8.  
  9. Adafruit invests time and resources providing this open source code,
  10. please support Adafruit and open-source hardware by purchasing
  11. products from Adafruit!
  12.  
  13. Written by Limor Fried/Ladyada  for Adafruit Industries.  
  14. BSD license, check license.txt for more information
  15. All text above, and the splash screen must be included in any redistribution
  16. *********************************************************************/
  17. #ifndef _ADAFRUIT_PCD8544_H
  18. #define _ADAFRUIT_PCD8544_H
  19.  
  20. #if defined(ARDUINO) && ARDUINO >= 100
  21.   #include "Arduino.h"
  22. #else
  23.   #include "WProgram.h"
  24.   #include "pins_arduino.h"
  25. #endif
  26.  
  27. #include <SPI.h>
  28.  
  29. #define BLACK 1
  30. #define WHITE 0
  31.  
  32. #define LCDWIDTH 96
  33. #define LCDHEIGHT 65
  34.  
  35. #define PCD8544_POWERDOWN 0x04
  36. #define PCD8544_ENTRYMODE 0x02
  37. #define PCD8544_EXTENDEDINSTRUCTION 0x01
  38.  
  39. #define PCD8544_DISPLAYBLANK 0x0
  40. #define PCD8544_DISPLAYNORMAL 0x4
  41. #define PCD8544_DISPLAYALLON 0x1
  42. #define PCD8544_DISPLAYINVERTED 0x5
  43.  
  44. // H = 0
  45. #define PCD8544_FUNCTIONSET 0x20
  46. #define PCD8544_DISPLAYCONTROL 0x08
  47. #define PCD8544_SETYADDR 0x40
  48. #define PCD8544_SETXADDR 0x80
  49.  
  50. // H = 1
  51. #define PCD8544_SETTEMP 0x04
  52. #define PCD8544_SETBIAS 0x10
  53. #define PCD8544_SETVOP 0x80
  54.  
  55. // Default to max SPI clock speed for PCD8544 of 4 mhz (16mhz / 4) for normal Arduinos.
  56. // This can be modified to change the clock speed if necessary (like for supporting other hardware).
  57. #define PCD8544_SPI_CLOCK_DIV SPI_CLOCK_DIV4
  58.  
  59. class Adafruit_PCD8544 : public Adafruit_GFX {
  60.  public:
  61.   // Software SPI with explicit CS pin.
  62.   Adafruit_PCD8544(int8_t SCLK, int8_t DIN, int8_t DC, int8_t CS, int8_t RST);
  63.   // Software SPI with CS tied to ground.  Saves a pin but other pins can't be shared with other hardware.
  64.   Adafruit_PCD8544(int8_t SCLK, int8_t DIN, int8_t DC, int8_t RST);
  65.   // Hardware SPI based on hardware controlled SCK (SCLK) and MOSI (DIN) pins. CS is still controlled by any IO pin.
  66.   // NOTE: MISO and SS will be set as an input and output respectively, so be careful sharing those pins!
  67.   Adafruit_PCD8544(int8_t DC, int8_t CS, int8_t RST);
  68.  
  69.   void begin(uint8_t contrast = 40, uint8_t bias = 0x04);
  70.  
  71.   void command(uint8_t c);
  72.   void data(uint8_t c);
  73.  
  74.   void setContrast(uint8_t val);
  75.   void clearDisplay(void);
  76.   void display();
  77.  
  78.   void drawPixel(int16_t x, int16_t y, uint16_t color);
  79.   uint8_t getPixel(int8_t x, int8_t y);
  80.  
  81.  private:
  82.   int8_t _din, _sclk, _dc, _rst, _cs;
  83.   volatile uint8_t *mosiport, *clkport;
  84.   uint8_t mosipinmask, clkpinmask;
  85.  
  86.   void spiWrite(uint8_t c);
  87.   bool isHardwareSPI();
  88. };
  89.  
  90. #endif
(#) andykaaa válasza arduinoforever hozzászólására (») Aug 27, 2014 /
 
Koszi a gyors segitseget, Koszi.
En vagyok a mert nem irtam meg hogy ChipKit-em van es az Adafruit-ot sajni kedveli (en nem tudok ra megoldast), csak a sima PCD8544 -et, ezt irja ki:
Idézet:
„In file included from D:\...\mpide\libraries\Adafruit_PCD8544\Adafruit_PCD8544.cpp:20:0:
d:\...\MPIDE - chipKIT\hardware\pic32\compiler\pic32-tools\bin\../lib/gcc/pic32mx/4.5.1/../../../../pic32mx/include/avr/pgmspace.h:4:2: error: #error ******** This sketch or library uses AVR-specific code that may not work with the chipKIT platform. See this forum for more information on porting code to chipKIT [www.chipkit.org/forum/viewforum.php?f=7] ********
D:\...\mpide\libraries\Adafruit_PCD8544\Adafruit_PCD8544.cpp:26:24: fatal error: util/delay.h: No such file or directory
compilation terminated.”
A hozzászólás módosítva: Aug 27, 2014
(#) andykaaa válasza andykaaa hozzászólására (») Aug 27, 2014 /
 
Idézet:
„sajni NEM kedveli”
(#) Hp41C válasza domcsidd hozzászólására (») Aug 27, 2014 /
 
Nem az include sorra gondoltam, hanem magára a Servo.h állományra. Pl. A Servo.h végen van egy komment kezdet, de nincs meg a lezárása. A preprocesszor az
  1. #include  <Servo.h>
sor helyére "teszi" a h állományt, így előfordulhat, hogy az include sor utáni kód kommentbe kerül. stb.
(#) domcsidd válasza Hp41C hozzászólására (») Aug 27, 2014 /
 
Széttördeltem kód-ot , a servo.h és a servo.cpp file átírásával (bővítésével), most úgy nézz ki , működik .
(#) andykaaa hozzászólása Aug 28, 2014 /
 
Sziasztok,
Esetleg van valakinek valami otlete hogyan lehet ebbe a kodba nagyobb karaktereket is beszurni, ugy hogy egyszerre irjon ki normal meretu (5x7) karaktereket es nagyobbakat is.
Tudom letezik az Adafruit verzio, de mint irtam az AVR specifikus es emiatt nalam leallt az esz.
Az lenne a legmegfelelobb ha a fent emlitett koddal tudnam legalabb ket fele karaktert nyomtatni.
Koszonom.
Következő: »»   44 / 850
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem