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   178 / 854
(#) kapu48 válasza erdeidominik1999 hozzászólására (») Jan 1, 2016 /
 
Jól van bekötve a programozód?

A helyes bekötés:
M2560 Atmel Microcontroller

339.: oldal: 30.8.1 Serial Programming Pin Mapping
(#) erdeidominik1999 válasza kapu48 hozzászólására (») Jan 2, 2016 /
 
Mint írtam, a videó alapján csináltam, és ott csak az rx-rx, és tx-tx lábakat köti össze, meg persze az áramot. De egy uno-ra simán felmegy így, csak a due-re nem...
(#) Tetye hozzászólása Jan 2, 2016 /
 
Sziasztok!
Azt szeretném kérdezni, hogy bascom vagy arduino alatt valaki használt-e már SNMP-t ? Már 3 hónapja csak szenvedek de nem jutottam semmire. Feltettem egy arduino-t a házfalára kintre dobozba tettem rá pár érzékelőt és azok adatait szeretném lekérdeni úgy hogy BannanaPi-n futó nagios kérdezgetné le. Egy arduino mega2560, vagy egy uno lenne a cél panel egy w5100 shilded, vagy esetleg enc-vel. Tudna valaki segíteni ebben ?
Üdv.
(#) dannu hozzászólása Jan 2, 2016 /
 
Hellosztok van ez a program kódom és olyan bajom van vele hogy szematikailag jó az az a program lefut de nem csinálja amit kell . Hiába írom be pl . : V 5 + r . Semmit nem csinál vissza ad értékeket de a kimeneteken nincs jel .
  1. #include <avr/pgmspace.h>
  2.  
  3.  
  4.  
  5. const static uint8_t konami_font[] PROGMEM = {
  6.   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  7.   0x00, 0x00, 0x00, 0xBE, 0xBE, 0x0E, 0x00, 0x00,
  8.   0x00, 0x00, 0x0E, 0x06, 0x00, 0x0E, 0x06, 0x00,
  9.   0x00, 0x28, 0xFE, 0xFE, 0x28, 0xFE, 0xFE, 0x28,
  10.   0x00, 0x08, 0x5C, 0x54, 0xFE, 0x54, 0x74, 0x20,
  11.   0x00, 0x84, 0x4A, 0x24, 0x10, 0x48, 0xA4, 0x42,
  12.   0x00, 0x60, 0x9C, 0x9A, 0xB2, 0xEC, 0x40, 0xA0,
  13.   0x00, 0x00, 0x16, 0x0E, 0x00, 0x00, 0x00, 0x00,
  14.   0x00, 0x00, 0x38, 0x7C, 0xC6, 0x82, 0x00, 0x00,
  15.   0x00, 0x00, 0x00, 0x82, 0xC6, 0x7C, 0x38, 0x00,
  16.   0x00, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
  17.   0x00, 0x00, 0x10, 0x10, 0x7C, 0x10, 0x10, 0x00,
  18.   0x00, 0x00, 0x80, 0xE0, 0x60, 0x00, 0x00, 0x00,
  19.   0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00,
  20.   0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00,
  21.   0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02,
  22.   0x00, 0x38, 0x7C, 0xC2, 0x82, 0x86, 0x7C, 0x38,
  23.   0x00, 0x00, 0x80, 0x84, 0xFE, 0xFE, 0x80, 0x80,
  24.   0x00, 0xC4, 0xE6, 0xF2, 0xB2, 0xBA, 0x9E, 0x8C,
  25.   0x00, 0x40, 0xC2, 0x92, 0x9A, 0x9E, 0xF6, 0x62,
  26.   0x00, 0x30, 0x38, 0x2C, 0x26, 0xFE, 0xFE, 0x20,
  27.   0x00, 0x4E, 0xCE, 0x8A, 0x8A, 0x8A, 0xFA, 0x70,
  28.   0x00, 0x78, 0xFC, 0x96, 0x92, 0x92, 0xF2, 0x60,
  29.   0x00, 0x06, 0x06, 0xE2, 0xF2, 0x1A, 0x0E, 0x06,
  30.   0x00, 0x6C, 0x9E, 0x9A, 0xB2, 0xB2, 0xEC, 0x60,
  31.   0x00, 0x0C, 0x9E, 0x92, 0x92, 0xD2, 0x7E, 0x3C,
  32.   0x00, 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x00, 0x00,
  33.   0x00, 0x00, 0x80, 0xEC, 0x6C, 0x00, 0x00, 0x00,
  34.   0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0x82, 0x00,
  35.   0x00, 0x00, 0x28, 0x28, 0x28, 0x28, 0x28, 0x00,
  36.   0x00, 0x00, 0x82, 0xC6, 0x6C, 0x38, 0x10, 0x00,
  37.   0x00, 0x0C, 0x0E, 0xA6, 0xA6, 0xB6, 0x1E, 0x0C,
  38.   0x00, 0x38, 0x7C, 0xC6, 0x82, 0x9A, 0xDE, 0x5C,
  39.   0x00, 0xF8, 0xFC, 0x26, 0x22, 0x26, 0xFC, 0xF8,
  40.   0x00, 0xFE, 0xFE, 0x92, 0x92, 0x92, 0xFE, 0x6C,
  41.   0x00, 0x38, 0x7C, 0xC6, 0x82, 0x82, 0xC6, 0x44,
  42.   0x00, 0xFE, 0xFE, 0x82, 0x82, 0xC6, 0x7C, 0x38,
  43.   0x00, 0xFE, 0xFE, 0x92, 0x92, 0x92, 0x92, 0x82,
  44.   0x00, 0xFE, 0xFE, 0x12, 0x12, 0x12, 0x12, 0x02,
  45.   0x00, 0x38, 0x7C, 0xC6, 0x82, 0x92, 0xF2, 0xF2,
  46.   0x00, 0xFE, 0xFE, 0x10, 0x10, 0x10, 0xFE, 0xFE,
  47.   0x00, 0x00, 0x82, 0x82, 0xFE, 0xFE, 0x82, 0x82,
  48.   0x00, 0x40, 0xC0, 0x80, 0x80, 0x80, 0xFE, 0x7E,
  49.   0x00, 0xFE, 0xFE, 0x30, 0x78, 0xEC, 0xC6, 0x82,
  50.   0x00, 0xFE, 0xFE, 0x80, 0x80, 0x80, 0x80, 0x80,
  51.   0x00, 0xFE, 0xFE, 0x1C, 0x38, 0x1C, 0xFE, 0xFE,
  52.   0x00, 0xFE, 0xFE, 0x1C, 0x38, 0x70, 0xFE, 0xFE,
  53.   0x00, 0x7C, 0xFE, 0x82, 0x82, 0x82, 0xFE, 0x7C,
  54.   0x00, 0xFE, 0xFE, 0x22, 0x22, 0x22, 0x3E, 0x1C,
  55.   0x00, 0x7C, 0xFE, 0x82, 0xA2, 0xE2, 0x7E, 0xBC,
  56.   0x00, 0xFE, 0xFE, 0x22, 0x62, 0xF2, 0xDE, 0x9C,
  57.   0x00, 0x4C, 0xDE, 0x92, 0x92, 0x96, 0xF4, 0x60,
  58.   0x00, 0x00, 0x02, 0x02, 0xFE, 0xFE, 0x02, 0x02,
  59.   0x00, 0x7E, 0xFE, 0x80, 0x80, 0x80, 0xFE, 0x7E,
  60.   0x00, 0x1E, 0x3E, 0x70, 0xE0, 0x70, 0x3E, 0x1E,
  61.   0x00, 0xFE, 0xFE, 0x70, 0x38, 0x70, 0xFE, 0xFE,
  62.   0x00, 0xC6, 0xEE, 0x7C, 0x38, 0x7C, 0xEE, 0xC6,
  63.   0x00, 0x00, 0x0E, 0x1E, 0xF0, 0xF0, 0x1E, 0x0E,
  64.   0x00, 0xC2, 0xE2, 0xF2, 0xBA, 0x9E, 0x8E, 0x86,
  65.   0x00, 0x00, 0x00, 0xFE, 0xFE, 0x82, 0x82, 0x00,
  66.   0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
  67.   0x00, 0x00, 0x82, 0x82, 0xFE, 0xFE, 0x00, 0x00,
  68.   0x00, 0x00, 0x18, 0x0C, 0x06, 0x0C, 0x18, 0x00,
  69.   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  70.   0x00, 0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x00,
  71.   0xFC, 0x42, 0x89, 0x41, 0x81, 0x49, 0x82, 0x7C,
  72.   0x00, 0x00, 0x1E, 0x20, 0x40, 0x46, 0x48, 0x48,
  73.   0x48, 0x48, 0x46, 0x40, 0x20, 0x1E, 0x00, 0x00,
  74.   0x00, 0x00, 0x00, 0xF0, 0x08, 0x04, 0xC4, 0x24,
  75.   0x24, 0x24, 0x24, 0xC4, 0x04, 0x08, 0xF0, 0x00,
  76.   0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24,
  77.   0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00,
  78.   0x3C, 0x42, 0x95, 0xA1, 0xA1, 0x95, 0x42, 0x3C,
  79.   0x00, 0x00, 0x82, 0x82, 0xFE, 0xFE, 0x82, 0x82,
  80.   0x00, 0x40, 0xC0, 0x80, 0x80, 0x80, 0xFE, 0x7E,
  81.   0x00, 0xFE, 0xFE, 0x30, 0x78, 0xEC, 0xC6, 0x82,
  82.   0x00, 0xFE, 0xFE, 0x80, 0x80, 0x80, 0x80, 0x80,
  83.   0x00, 0xFE, 0xFE, 0x1C, 0x38, 0x1C, 0xFE, 0xFE,
  84.   0x00, 0xFE, 0xFE, 0x1C, 0x38, 0x70, 0xFE, 0xFE,
  85.   0x00, 0x7C, 0xFE, 0x82, 0x82, 0x82, 0xFE, 0x7C,
  86.   0x00, 0xFE, 0xFE, 0x22, 0x22, 0x22, 0x3E, 0x1C,
  87.   0x00, 0x7C, 0xFE, 0x82, 0xA2, 0xE2, 0x7E, 0xBC,
  88.   0x00, 0xFE, 0xFE, 0x22, 0x62, 0xF2, 0xDE, 0x9C,
  89.   0x00, 0x4C, 0xDE, 0x92, 0x92, 0x96, 0xF4, 0x60,
  90.   0x00, 0x00, 0x02, 0x02, 0xFE, 0xFE, 0x02, 0x02,
  91.   0x00, 0x7E, 0xFE, 0x80, 0x80, 0x80, 0xFE, 0x7E,
  92.   0x00, 0x1E, 0x3E, 0x70, 0xE0, 0x70, 0x3E, 0x1E,
  93.   0x00, 0xFE, 0xFE, 0x70, 0x38, 0x70, 0xFE, 0xFE,
  94.   0x00, 0xC6, 0xEE, 0x7C, 0x38, 0x7C, 0xEE, 0xC6,
  95.   0x00, 0x00, 0x0E, 0x1E, 0xF0, 0xF0, 0x1E, 0x0E,
  96.   0x00, 0xC2, 0xE2, 0xF2, 0xBA, 0x9E, 0x8E, 0x86,
  97.   0x00, 0x00, 0x10, 0xFE, 0xFE, 0x82, 0x82, 0x00,
  98.   0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00,
  99.   0x00, 0x00, 0x82, 0x82, 0xFE, 0xFE, 0x10, 0x00,
  100.   0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00,
  101.   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  102. };
  103.  
  104.  
  105. const uint8_t sin_lut[] PROGMEM = {
  106.   0x00,0x03,0x06,0x09,0x0c,0x0f,0x12,0x15,0x19,0x1c,0x1f,0x22,0x25,0x28,0x2b,0x2e,
  107.   0x31,0x34,0x36,0x39,0x3c,0x3f,0x42,0x44,0x47,0x49,0x4c,0x4f,0x51,0x53,0x56,0x58,
  108.   0x5a,0x5c,0x5f,0x61,0x63,0x65,0x67,0x68,0x6a,0x6c,0x6e,0x6f,0x71,0x72,0x73,0x75,
  109.   0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,
  110.   0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x79,0x78,0x77,
  111.   0x75,0x74,0x73,0x71,0x70,0x6e,0x6d,0x6b,0x69,0x68,0x66,0x64,0x62,0x60,0x5e,0x5b,
  112.   0x59,0x57,0x55,0x52,0x50,0x4d,0x4b,0x48,0x46,0x43,0x40,0x3d,0x3b,0x38,0x35,0x32,
  113.   0x2f,0x2c,0x29,0x26,0x23,0x20,0x1d,0x1a,0x17,0x14,0x11,0x0e,0x0b,0x07,0x04,0x01,
  114.   0xff,0xfc,0xf9,0xf5,0xf2,0xef,0xec,0xe9,0xe6,0xe3,0xe0,0xdd,0xda,0xd7,0xd4,0xd1,
  115.   0xce,0xcb,0xc8,0xc5,0xc3,0xc0,0xbd,0xba,0xb8,0xb5,0xb3,0xb0,0xae,0xab,0xa9,0xa7,
  116.   0xa5,0xa2,0xa0,0x9e,0x9c,0x9a,0x98,0x97,0x95,0x93,0x92,0x90,0x8f,0x8d,0x8c,0x8b,
  117.   0x89,0x88,0x87,0x86,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x81,0x81,0x81,0x81,0x81,
  118.   0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,
  119.   0x8b,0x8d,0x8e,0x8f,0x91,0x92,0x94,0x96,0x98,0x99,0x9b,0x9d,0x9f,0xa1,0xa4,0xa6,
  120.   0xa8,0xaa,0xad,0xaf,0xb1,0xb4,0xb7,0xb9,0xbc,0xbe,0xc1,0xc4,0xc7,0xca,0xcc,0xcf,
  121.   0xd2,0xd5,0xd8,0xdb,0xde,0xe1,0xe4,0xe7,0xeb,0xee,0xf1,0xf4,0xf7,0xfa,0xfd
  122. };
  123.  
  124. //-----------------------------------------------
  125. const byte laserPin = 13;
  126. const byte laserPin2 = 12;
  127. const byte tacoPin = 3;
  128.  
  129. int line = 0;
  130. const char Video[] = " HELLO!!!  .... I AM A LASER PROJECTOR BUILT BY RAUL AGUAVIVA MORE INFO COODINGLAB.BLOGSPOT.COM ";
  131.  
  132. char VideoRam[10];
  133.  
  134. const char *pVideo = Video;
  135.  
  136. const byte mask[8] = {
  137.   2,4,8,16,32,64,128};
  138.  
  139. int beamdelay[8] = {
  140.   0,0,0,0,0,0,0 };
  141.  
  142. boolean scroll;
  143. unsigned int clockwall;
  144. boolean wave;
  145. boolean FullLaser;
  146. boolean verbose;
  147.  
  148. volatile unsigned int rpmcount;
  149. unsigned int rpm;
  150.  
  151. volatile unsigned long markers[7];
  152. volatile boolean ignore = false;
  153. volatile unsigned int start = 0;
  154.  
  155. void Reset()
  156. {
  157.   scroll = false;
  158.   clockwall = 0;
  159.   start = 0;
  160.   wave = false;
  161.   FullLaser = false;
  162.   verbose = false;
  163.   pVideo = Video;
  164. }
  165.  
  166. void setup()
  167. {
  168.   Serial.begin(115200);
  169.  
  170.   pinMode(laserPin, OUTPUT);   // sets the pin as output
  171.   pinMode(laserPin2, OUTPUT);   // sets the pin as output
  172.  
  173.   pinMode(tacoPin, INPUT);   // sets the pin as output
  174.   digitalWrite( tacoPin, HIGH );    
  175.  
  176.   rpmcount = 0;
  177.   rpm = 0;
  178.  
  179.   Serial.println( "Laser Projector Ready!" );      
  180.  
  181.   Reset();
  182.  
  183.   attachInterrupt(0, rpm_fun, FALLING);
  184.  
  185. }
  186.  
  187. void RasterLine( byte _line, unsigned int offset )
  188. {
  189.         digitalWrite( laserPin, HIGH );
  190.         return;
  191.  
  192.   int t = beamdelay[_line];
  193.  
  194.   if ( wave )
  195.   {
  196.     t += (const char)pgm_read_byte( &sin_lut[ (clockwall*16 + _line*16) & 0xff ] )/2;
  197.   }
  198.  
  199.   for(int i=0;i<t;i++)
  200.   {
  201.     digitalWrite( laserPin, LOW );
  202.   //digitalWrite( laserPin2, LOW );
  203.   }
  204.  
  205.   byte mascara = mask[_line];
  206.  
  207.   for(byte i=0;i<10;i++)
  208.   {
  209.     for(byte j=0;j<8;j++)
  210.     {
  211.       boolean m = ( pgm_read_byte( &konami_font[ (pVideo[offset>>3]-' ') * 8 + (offset&7)] ) & mascara )?HIGH:LOW;
  212.  
  213.       if ( FullLaser )
  214.         m = HIGH;
  215.  
  216.       for(byte k=0;k<1;k++)
  217.       {
  218.         digitalWrite( laserPin, m );
  219.         digitalWrite( laserPin2, m );
  220.       }
  221.       offset++;
  222.     }      
  223.   }
  224.  
  225.   digitalWrite( laserPin, LOW );    
  226.   digitalWrite( laserPin2, LOW );    
  227. }
  228.  
  229.  
  230. // 8224,7976,8292,7784,8228,8028,7876,
  231. // <    >    <    >    <    >    >
  232. void rpm_fun()
  233. {
  234.     rpmcount++;
  235.     if (ignore == true)
  236.     {
  237.       return;
  238.     }
  239.     ignore = true;
  240.  
  241.     static unsigned int olddelta = 0;
  242.     static unsigned int oldtime = 0;
  243.     static byte index = 0;
  244.        
  245.     unsigned long t = micros();
  246.     unsigned int delta = t - oldtime;
  247.     oldtime = t;
  248.  
  249.    // find pattern that signals first scanline
  250.     static byte cond = 0;
  251.     if ( olddelta > delta )
  252.     {
  253.       cond++;
  254.       if ( cond == 2 )
  255.       {
  256.         index = 3;
  257.         cond = 0;
  258.       }
  259.     }
  260.     else
  261.     {
  262.       cond = 0;
  263.     }
  264.  
  265.     markers[index] = delta;
  266.  
  267.     olddelta = delta;
  268.  
  269.     RasterLine( index, start );
  270.  
  271.     index++;
  272.     if ( index >6 )
  273.     {
  274.       index = 0;
  275.  
  276.       clockwall++;
  277.  
  278.       if ( scroll )
  279.       {
  280.         start++;
  281.         if ( start >55*8 )
  282.           start = 0;
  283.       }
  284.     }    
  285.    
  286.     ignore = false;    
  287. }
  288.  
  289.  
  290. byte cmd=0;
  291.  
  292. void DoKeyboard()
  293. {
  294.   if (Serial.available() > 0)
  295.   {
  296.     ignore = true;
  297.    
  298.     unsigned char in = Serial.read();
  299.  
  300.     if ( in == 'w' )
  301.     {
  302.       wave = !wave;
  303.     }
  304.     else if ( in == 'v' )
  305.     {
  306.       pVideo = VideoRam;
  307.     }    
  308.     else if ( in == 'V' )
  309.     {
  310.       pVideo = Video;
  311.     }    
  312.     else if ( in >= '0' && in <='9')
  313.     {
  314.       line = in-'0';
  315.       Serial.println( line, DEC );    
  316.     }
  317.     else if ( in == '+' )
  318.     {
  319.       cmd++;      
  320.       if ( line == 8 )
  321.       {
  322.         for(byte i=1;i<7;i++)
  323.         {
  324.           beamdelay[i]++;
  325.         }
  326.       }
  327.       else
  328.       {      
  329.         beamdelay[line]++;
  330.       }
  331.       Serial.println( beamdelay[line], DEC );    
  332.     }
  333.     else if ( in == '-' )
  334.     {
  335.       cmd--;
  336.       if ( line == 8 )
  337.       {
  338.         for(byte i=1;i<7;i++)
  339.         {
  340.           beamdelay[i]--;
  341.         }
  342.       }
  343.       else
  344.       {      
  345.         beamdelay[line]--;
  346.       }
  347.       Serial.println( beamdelay[line], DEC );    
  348.     }
  349.     else if ( in == 'r' )
  350.     {
  351.       Reset();
  352.     }
  353.     else if ( in == 'f' )
  354.     {
  355.       FullLaser = !FullLaser;
  356.     }
  357.     else if ( in == 's' )
  358.     {
  359.       scroll = !scroll;
  360.     }
  361.     else if ( in == ' ' )
  362.     {
  363.       for(byte i=0;i<7;i++)
  364.       {
  365.         Serial.print( beamdelay[i], DEC );    
  366.         Serial.print(',');        
  367.       }
  368.       Serial.println();
  369.  
  370.       for(byte i=0;i<7;i++)
  371.       {
  372.         Serial.print( markers[i], DEC );    
  373.         Serial.print(',');        
  374.       }
  375.       Serial.println();
  376.     }
  377.     else if ( in == 'q' )
  378.     {
  379.       rpmcount = 0;
  380.       delay (1000);
  381.       Serial.print ((rpmcount *60) / 7, DEC);
  382.       Serial.println (" rpm");
  383.     }
  384.  
  385.   ignore = false;
  386.   }  
  387. }
  388.  
  389. // |________|________|________|________|________|________|________|__|_____
  390. // 0        1        2        3        4        5        6        7
  391.  
  392. //0:10100 ,1:9676 ,2:10116 ,3:9744 ,4:9840 ,5:10056 ,6:9868
  393. // <       >        <        >       <       <        >
  394.  
  395.  
  396.  
  397. unsigned long lastlap;
  398. unsigned int t1;
  399. boolean lastcmp = true;
  400.  
  401. byte scanline = 0;
  402.  
  403.  
  404.  
  405. void loop()
  406. {
  407.   DoKeyboard();  
  408. }
(#) Spumifater hozzászólása Jan 2, 2016 /
 
Sziasztok!

Mint sokan mások is, én is segítséget kérek azoktól, akik sokkal jobban otthon vannak az ARDUINO terén.
A következő a problémám. Hangsúlyozom, hogy még ismerkedek csak.
Tehát vásároltam egy 2.4 Tft SD-slottal. Rádugtam az UNo R3-ra. Nehezen ugyan de találtam egy könyvtárat ami életet lehelt bele. A grafikus teszt tökéletesen lefut. Az érintőképernyős teszt szintén. Azonban az SD-kártyáról történő kép beolvasása nagyon nem akar működni. Lefut a fordítás és rá is tölti az UNO-ra. Épp csak a kép nem látszik. Egy-egy kis csíkot látok csak. ami lépked átlósan. Csatolom a könyvtárat. Talán lesz valaki aki meg tudja mondani mi a baj.
A leírásnak megfelelő képet írtam az SD-re. Meg is találja. Épp csak nem jelenik meg a kijelzőn.
A segítséget előre is köszönöm!

libraries.zip
    
(#) TavIR-AVR válasza Spumifater hozzászólására (») Jan 3, 2016 /
 
Az UNO memóriája kicsi.
SD kezelés és a TFT kezelés nem igazán működik együtt

Nálam legalábbis csak a MEGA volt hajlandó kezelni (ott meg az LCD/TFT kezelés volt egy szenvedés).
(#) Spumifater válasza TavIR-AVR hozzászólására (») Jan 3, 2016 /
 
Köszönöm a választ. Talán lesz valami megoldás. Legalábbis reménykedek benne.
(#) kapu48 válasza dannu hozzászólására (») Jan 3, 2016 /
 
Az első kérdés!
Ennek itt mi értelme van:

  1. for(int i=0;i<t;i++)
  2.   {
  3.     digitalWrite( laserPin, LOW );
  4.   //digitalWrite( laserPin2, LOW );
  5.   }

t * LOW ? 100 * 0 = 0.
Szerintem itt valami hiányzik!

Ennek se látom sok értelmét:
  1. for(byte k=0;k<1;k++)
  2.       {
  3.         digitalWrite( laserPin, m );
  4.         digitalWrite( laserPin2, m );
  5.       }

Minek a for ciklus? Ha csak 1* fut le!
A hozzászólás módosítva: Jan 3, 2016
(#) kapu48 válasza dannu hozzászólására (») Jan 3, 2016 /
 
Szerintem ide nem kellenek ’&’ utasítások.
  1. t += (const char)pgm_read_byte( sin_lut[ (clockwall*16 + _line*16) & 0xff ] )/2;
  2. boolean m = ( pgm_read_byte( konami_font[ (pVideo[offset>>3]-' ') * 8 + (offset&7)] ) & mascara )?HIGH:LOW;

Legalább is itt ez van:
A hozzászólás módosítva: Jan 3, 2016
(#) kapu48 válasza dannu hozzászólására (») Jan 3, 2016 /
 
És itt minden feltétel nélkül visszatérsz a return-al?
  1. void RasterLine( byte _line, unsigned int offset )
  2. {
  3.         digitalWrite( laserPin, HIGH );
  4.         return;   ????????????????????????????????????
  5.  ...


Akkor minek a rutin többi része?????
(#) dannu válasza kapu48 hozzászólására (») Jan 3, 2016 /
 
Ezt a kódot itt találtam :
Bővebben: Link

Már az elején volt benne a karakter kezeléssel probléma azt ki tudtam javítani. Valaki esetleg csinált már valaki ilyet vagy hasonló ? Ezt a kódot találtam a legjobbnak mivel egy változóba tudok be írni szöveget és ki írja . Vagy is ki írná meg ebbe van "tükör kalibrációs rész is " .
(#) Spumifater válasza TavIR-AVR hozzászólására (») Jan 3, 2016 /
 
Hali!

Végül sikerült megoldani a problémát. Lassú is és persze kizárólag 240x320 bitkép 24 bit színmélységgel műxik. És biztosan nem a legfrappánsabb megoldás de megy.
Csatoltam a képet. A lényeg a korábban leírtakban van. Gyakorlatilag képpontonként olvassa be az sd-ről a képet. Több képpel kipróbáltam. Tökéletesen működik.
  1. #include <Adafruit_GFX.h>
  2. #include <Adafruit_TFTLCD.h>
  3. #include <SPI.h>
  4. #include <SD.h>
  5. #include <Stdint.h>
  6. //SPI Communication
  7. #define LCD_CS A3
  8. #define LCD_CD A2
  9. #define LCD_WR A1
  10. #define LCD_RD A0
  11. #define LCD_RESET A4
  12.  
  13. //Color Definitons
  14. #define USE_ADAFRUIT_SHIELD_PINOUT
  15. Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
  16.   int x,y;
  17.   File myFile;
  18.   byte a1,a2,a3;
  19.   int szin,i;
  20. void setup() {
  21.  
  22.   Serial.begin(9600);
  23. //TFT+SD shield-en    10  az  sd
  24.  
  25.   if (!SD.begin(10)) {
  26.     Serial.println("initialization failed!");
  27.     return;
  28.   }
  29.   tft.reset();  
  30.   tft.begin(0x9341); // ILI9341 chip van a vezérlőben
  31. myFile = SD.open("arc.bmp",FILE_READ);
  32. if (myFile) {Serial.println("opening arc.txt");}
  33.   tft.fillScreen(BLACK);
  34.  x=240;y=0;
  35.  for (int i=0;i<=53 ; i++){a1=(myFile.read());}
  36.   while (myFile.available()) {
  37.     a1=(myFile.read());
  38.     a2=(myFile.read());
  39.     a3=(myFile.read());
  40.     szin= tft.color565(a3,a2,a1);
  41.     tft.drawPixel(x,y,(szin));
  42.     x=x-1;  
  43.     if (x==0) { y=y+1; x=240;}
  44.  }}
  45. void loop() { }
A hozzászólás módosítva: Jan 3, 2016
(#) kapu48 válasza Spumifater hozzászólására (») Jan 3, 2016 /
 
  1. //Szerintem valamenyit gyorsulna ha for helyett:
  2. for (int i=0;i<=53 ; i++){a1=(myFile.read());}
  3.  
  4. //seek-et használnál:
  5. if(seek(54)){
  6.  while (myFile.available()) {
  7.     a1=(myFile.read());
  8.     a2=(myFile.read());
  9.     a3=(myFile.read());
  10.     szin= tft.color565(a3,a2,a1);
  11.     tft.drawPixel(x,y,(szin));
  12.     x=x-1;
  13.     if (x==0) { y=y+1; x=240;}
  14.  }
  15. }

(#) ToZo válasza k3gy3tl3n hozzászólására (») Jan 3, 2016 /
 
Szia!
Nálam is volt, hogy rángatozott a szervó, és is szívtam vele egy kicsit. Nálam a rendszerben volt egy bluetooth modul (softwareserial-on keresztül) és azzal akadt össze.
A megoldás az lett, hogy nagyobbra állítottam a bluetooth modullal való kommunikáció sebességét.
(#) Spumifater válasza kapu48 hozzászólására (») Jan 3, 2016 /
 
A ciklus csak azért kell, mert a bitkép tartalmi információit onnan tárolja. A megelőző adatok jelen esetben lényegtelenek hiszen tudom, hogy 240x320 és 24 bit felbontású a kép. Igazából csak az indulást gyorsítaná meg némiképp. De azért köszönöm.
A célom meg egyébiránt egészen más project. Épp csak valahogyan meg kellett találnom a kijelző kezelésének mikéntjét. Most ezért van sikerélmény. Több órámba telt mire rájöttem mit és hogyan kell. Na meg persze azt is, hogy hol szúrtam el.
(#) kapu48 válasza Spumifater hozzászólására (») Jan 3, 2016 / 1
 
Én az ILI 9341-es sárgalábúhoz készítettem külön drivert.
Mivel mostanában csak ezt használtam.

Jól meg nyirbáltam. Pl, ha a drawPixel rutinból kivágod a sok felesleges if elset!
a gyorsulás sokat számít a kismillió pont átrajzolásánál.

Csak ennyit hagytam meg:
Ez csak egy részlet az egész fölöslegesen nagyméretű Adafruit_TFTLCD.cpp-böl
  1. void Adafruit_TFTLCD::drawPixel(int16_t x, int16_t y, uint16_t color) {
  2.   // Clip
  3.   if((x < 0) || (y < 0) || (x >= _width) || (y >= _height)) return;
  4.  
  5.   CS_ACTIVE;
  6.     setAddrWindow(x, y, _width-1, _height-1);
  7.     CS_ACTIVE;
  8.     CD_COMMAND;
  9.     write8(0x2C);
  10.     CD_DATA;
  11.     write8(color >> 8); write8(color);
  12.  
  13.   CS_IDLE;
  14. }


A maradék az egész rutinnak kb. ¼-e, kódméret csökkenés!
És 4 if else-vel gyorsabb!
(#) Spumifater válasza kapu48 hozzászólására (») Jan 4, 2016 /
 
Kipróbáltam. És ahogyan vártam is, teljesen jól működik így is. Köszönöm a segítséget. Ja és jogos a kódméretre való hivatkozás. Elég szűkös bizonyos esetekben az UNO.
A hozzászólás módosítva: Jan 4, 2016
(#) kapu48 válasza kapu48 hozzászólására (») Jan 4, 2016 /
 
Én igy kötöttem be a Megánál:
  1. //      Found arduino Mega shield + ILI9341 GLCD driver, Touch, SD mem
  2.  
  3. / **---------------------------------------------------
  4.                         GLCD + Touch + SD               ILI9341 240*320 2,4" Pin out:
  5.  
  6. Arduino pin                LCD pin              TOUCH pin
  7. LCD Data:
  8.         PA0             D22                     DB0
  9.         PA1             D23                     DB1
  10.         AP2             D24                     DB2
  11.         PA3             D25                     DB3    
  12.         PA4             D26                     DB4
  13.         PA5             D27                     DB5
  14.         PA6             D28                     DB6             XP
  15.         PA7             D29                     DB7             YM
  16. LCD Vezérlés:
  17.         PF0             A0                      RD
  18.         PF1             A1                      WR                                             
  19.         PF2             A2                      RS                  XM
  20.         PF3             A3                      CS                  YP
  21.         PF4             A4                      RST
  22. SD Kártya:
  23.                                                                 SD Kártya pin
  24.         PB4      D10                                           SD_SS
  25.                         ICSP    pin
  26.         PB1                     SCK                             SD_SCK
  27.         PB2                     MOSI                    SD_DO
  28.         PB3                     MISO                    SD_DI
  29.  
  30.  
  31. táp: 3.3V LCD Regulátorró kivezetve a Rádió 3.3V táplálásának!
  32.  
  33.  These are the Touch pins for the MEGA shield!                                                                         
  34.              (YM,23)
  35.                   A
  36.                    |   
  37.        (XM,A2)<---|--->(XP,22)
  38.                   |
  39.                   V
  40.              (YP,A3)
  41.  
  42. */


Ez hozta a leg gyorsább müködést!
Persze libet is javítani kellett mert nem ezt a bekötést alkalmazták.
A hozzászólás módosítva: Jan 4, 2016
(#) mrobi hozzászólása Jan 4, 2016 /
 
Sziasztok!
Arduinoval szeretnék készíteni egy fagy riasztót. Az volna a feladata, hogy 3 helyen mér (ez az arduinotol 5-30m távolságra van). Mivel volna célszerű mérni? +1/-1 °C pontosság már elegendő. Gondolom ilyen távolságra a DS.XXXX kilőve. PT100-on gondolkoztam, de ott nagyban befolyásolja a vezeték ellenállása a mérési eredményt. PT1000 már jobb, bár ehhez viszonylag több alkatrész szükséges. Felmerült még bennem az LM35 (vagy az MCP9700). Ezek mennyire használhatóak ilyen távolságban?
(#) Kovidivi válasza mrobi hozzászólására (») Jan 4, 2016 /
 
30m túl sok. Vagy raksz minden szenzorhoz egy AVR-t, és majd azok kommunikálnak, vagy csak fogsz egy vezetéket, amire 5V-ot adsz, ha fagy van, ha meg nincs, akkor GND.
(#) morgo válasza mrobi hozzászólására (») Jan 4, 2016 /
 
Szia!
DSxxxx megfelelő lesz szerintem erre a távolságra. Bár én még csak 20 méterig használtam, de ott semmi gond nem volt vele.
(#) dannu hozzászólása Jan 4, 2016 /
 
Olyan problémám lenen a lézer projectoral kapcsolatba hogy ezzel a hibával le áll :
Idézet:
„C:\Users\Dannu\Desktop\Mirror\MirrorPov\MirrorPov.ino: In function 'void loop()':

C:\Users\Dannu\Desktop\Mirror\MirrorPov\MirrorPov.ino:54:33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

setMessage(" HELLO WORLD", pbuf);”



  1. /*
  2.         Laser projector made from an old hard disk drive
  3.  
  4.         Author: Victor Cazacov
  5.         License: MIT License
  6.  
  7. */
  8.  
  9. // Third party libraries:
  10. // PWMServo - controls a servo motor (in this case ESC) attached to PWM pin without using interrupts.
  11. // Unpack it into Libraries folder of your Arduino IDE installation.
  12.  
  13. #include "Fonts.h"
  14. #include "Laser.h"
  15. #include <Arduino.h>
  16. #include <avr/pgmspace.h>
  17. #include "MirrorController.h"
  18. #include <PWMServo.h>
  19.  
  20. #define LASER_PIN 2
  21. #define LINE_LENGTH 12
  22.  
  23. MirrorController* mirrorController;
  24. char buf[20];
  25.  
  26. char message[21];
  27.  
  28. // forward declarations
  29. void setMessage(char* msg, unsigned char pixelBuffer[5][20]);
  30. bool readSerial();
  31.  
  32. void setup()
  33. {
  34.         Serial.begin(57600);
  35.         Serial.println("Initializing...");
  36.         mirrorController = new MirrorController();
  37.         mirrorController->init();
  38.  
  39.         pinMode(LASER_PIN, OUTPUT);
  40.         digitalWrite(LASER_PIN, HIGH);
  41. }
  42.  
  43. int correction[8] = { 17, 10, 0, 20, 45, 0, 0, -0 };  // time offset in microseconds to compensate non-ideal shape of mirrors
  44. int lineOrder[8] = { 0, 7, 3, 4, 1, 6, 2, 5 };          // for better balance mirroring faces are not placed in strict incremental order               
  45.  
  46. void loop()
  47. {
  48.         delay(500);
  49.         digitalWrite(LASER_PIN, LOW);
  50.  
  51.         unsigned char pbuf[5][20];
  52.  
  53.         setMessage(" HELLO WORLD", pbuf);
  54.  
  55.         // re-arrange correction time offesets in the order of mirror faces
  56.         byte ct[8];
  57.         for (int i = 0; i < 8; i++)
  58.         {
  59.                 for (int j = 0; j < 8; j++)
  60.                 {
  61.                         if (lineOrder[j] == i)
  62.                         {
  63.                                 ct[j] = correction[i];
  64.                         }
  65.                 }
  66.         }
  67.         for (int i = 0; i < 8; i++)
  68.         {
  69.                 correction[i] = ct[i];
  70.         }
  71.  
  72.  
  73.         Serial.println("Speeding up the mirror...");
  74.         mirrorController->start();
  75.  
  76.         delay(3000);
  77.  
  78.         Serial.println("Measuring rotation speed...");
  79.         long cycleTimeMs = mirrorController->calculateRotationSpeed();
  80.  
  81.         sprintf(buf, "Cycle time: %ld", cycleTimeMs);
  82.         Serial.println(buf);
  83.  
  84.         long t0 = 150;
  85.         long lineTime = cycleTimeMs >> 3;       // time in microseconds to draw one line
  86.         long pixelTime = lineTime >> 7;         // time in microseconds to draw one pixel
  87.         sprintf(buf, "Pixel time: %ld", pixelTime);
  88.         Serial.println(buf);
  89.  
  90.         mirrorController->waitForBeginMarkFast();
  91.         long prevStart = micros();
  92.         delayMicroseconds(cycleTimeMs << 1);
  93.  
  94.         long startTimes[8];
  95.         int msgLen = strlen(message);
  96.         do {
  97.                 int pixels = msgLen << 3;
  98.                 mirrorController->waitForBeginMarkFast();
  99.                 long start = micros();
  100.                 long* sptr = startTimes;
  101.                 int* cptr = correction;
  102.                 long val = start + t0;
  103.  
  104.                 for (int i = 0; i < 8; i++)
  105.                 {
  106.                         *sptr = val + (*cptr);
  107.                         sptr++;
  108.                         cptr++;
  109.                         val += lineTime;
  110.                 }
  111.  
  112.                 sptr = startTimes;
  113.                 long t = *sptr;  // time in microseconds when to start drawing next pixel
  114.  
  115.                 for (int i = 0; i < 8; i++)
  116.                 {
  117.                         int lineNr = lineOrder[i];
  118.                         unsigned char* ptr = pbuf[4 - lineNr];
  119.                         unsigned char bitMask = 0x80;
  120.                         unsigned char info = *ptr;
  121.  
  122.                         if (lineNr < 5)
  123.                         {
  124.                                 for (int p = 0; p < pixels; p++)
  125.                                 {
  126.                                         while (micros() < t)
  127.                                         {
  128.                                                 // do nothing;
  129.                                         }
  130.                                         if (info & bitMask)
  131.                                         {
  132.                                                 digitalWrite(LASER_PIN, HIGH);
  133.                                         }
  134.                                         else
  135.                                         {
  136.                                                 digitalWrite(LASER_PIN, LOW);
  137.                                         }
  138.                                         bitMask >>= 1;
  139.                                         if (bitMask == 0)
  140.                                         {
  141.                                                 ptr++;
  142.                                                 info = *ptr;
  143.                                                 bitMask = 0x80;
  144.                                                 t += pixelTime;
  145.                                         }
  146.                                         t += pixelTime;
  147.                                 }
  148.                         }
  149.                         digitalWrite(LASER_PIN, LOW);
  150.                         sptr++;
  151.                         t = *sptr;
  152.                 }
  153.                 lineTime = (start - prevStart) >> 3;
  154.                 pixelTime = lineTime >> 7;
  155.                 prevStart = start;
  156.  
  157.                 bool refreshFlag = readSerial();
  158.                 if (refreshFlag)
  159.                 {
  160.                         for (int i = 0; i < 5; i++)
  161.                         {
  162.                                 FONTS.getLine(message, i, pbuf[i]);
  163.                         }
  164.                 }
  165.         } while (1);
  166. }
  167.  
  168. //
  169. // Helper functions
  170. //
  171. void setMessage(char* msg, unsigned char pixelBuffer[5][20])
  172. {
  173.         strncpy(message, msg, LINE_LENGTH);
  174.         message[LINE_LENGTH] = '\0';
  175.  
  176.         // pad with spaces to 12 characters
  177.         for (int i = strlen(message); i < LINE_LENGTH; i++)
  178.         {
  179.                 message[i] = ' ';
  180.         }
  181.         for (int i = 0; i < 5; i++)
  182.         {
  183.                 FONTS.getLine(message, i, pixelBuffer[i]);
  184.         }
  185. }
  186.  
  187. bool readSerial()
  188. {
  189.         bool result = false;
  190.         while (Serial.available())
  191.         {
  192.                 int ch = Serial.read();
  193.                 if (ch >= 32)    // printable character
  194.                 {
  195.                         result = true;
  196.                         char* rp = message + 1;
  197.                         char* wp = message;
  198.                         for (int i = 0; i < LINE_LENGTH - 1; i++)
  199.                         {
  200.                                 *wp = *rp;
  201.                                 wp++;
  202.                                 rp++;
  203.                         }
  204.                         message[LINE_LENGTH - 1] = ch;
  205.                 }
  206.         }
  207.         return result;
  208. }



Valaki tudna segíteni hol és mi a hiba mit javítsak ki ?
(#) k3gy3tl3n válasza dannu hozzászólására (») Jan 4, 2016 /
 
Azért sír mert konstans stringből, ami ugye a " HELLO WORLD" akarsz char*-ot csinálni. Esetleg próbáld így:
  1. char* hw = " HELLO WORLD";
  2. setMessage(hw , pbuf);”

Amúgy ez 'csak' warning, nem hinném hogy beledöglik.
A hozzászólás módosítva: Jan 4, 2016
(#) dannu válasza k3gy3tl3n hozzászólására (») Jan 4, 2016 /
 
Ez a válasza :
Idézet:
„C:\Users\Dannu\Desktop\Mirror\MirrorPov\MirrorPov.ino: In function 'void loop()':

C:\Users\Dannu\Desktop\Mirror\MirrorPov\MirrorPov.ino:53:13: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

char* hw = " HELLO WORLD";

^
(#) dannu válasza k3gy3tl3n hozzászólására (») Jan 4, 2016 /
 
De mind1 működik
(#) morzsa15 hozzászólása Jan 4, 2016 /
 
Sziasztok!

Van egy kis problémám és hozzátok fordulnék segítségül építettem egy lézeres "cnc" és azt szeretném meg oldani hogy a lézert magától ki-be kapcsolgassa ez benne is van a programba leddel megy de mikor tranzisztorral akarom csinálni akkor már valamiért nem működik a dolog. Erről a programról lenne szó: Bővebben: Link
Bővebben: Link
Valaki esetleg tudna nekem segíteni hogy mi lehet a rossz? A cnc-s fórumba már tárgyaltuk de sajnos nem jutottunk előrébb.

Segítségeteket előre is köszönöm!
(#) Tetye válasza morzsa15 hozzászólására (») Jan 4, 2016 /
 
Hogy kötöd be a tranzisztort a led helyére? Milyen típust? Fel/lehúzó ellenállás?
(#) morzsa15 válasza Tetye hozzászólására (») Jan 4, 2016 /
 
1k ellenállásal ugye a bázisra collectorhoz meg a led. És a kimeneten meg ha mérem ilyen 0.2V de a led meg nem teljes fény erővel de világít. Próbáltam mostfet-el is de azzal se megy a dolog.
(#) Tetye válasza morzsa15 hozzászólására (») Jan 4, 2016 /
 
Mekkora előtét ellenállás van betéve? Mekkorával húzod merre? P vagy N?
Elég ott a bázis áram? Lerajzolnád hogy hogy van összekötve?
(#) kameleon2 válasza morzsa15 hozzászólására (») Jan 4, 2016 /
 
Ha nagyon nyögvenyelős a dolog, tegyél be egy optocsatolót és meg van oldva. A led helyére megy az optó ledje, Az optó tranzisztora pedig beköthető oda, ahová akarod.
Következő: »»   178 / 854
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