Electoday 4.0

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - top

Pages: [1] 2
1
     สวัสดีครับพี่ๆ ทุกท่าน

    คือผมต้องการตั้งเวลา 5 ช่วงเวลา  ( เหมือนนาฬิกาปลุกครับ )

แต่ผมต้องการให้มันแสดงค่าเวลา ที่จะปลุกในรอบทัดไปครับ

   เช่น   เวลาปัจจุบัน               2:50 
           เวลาปลุกในรอบทัดไป   6:00

แต่ปัญหาคือ เวลาที่ตั้งปลุกไม่ได้เรียงกันครับ

   เช่น    เวลาที่ 1      6:00
            เวลาที่ 2      5:40
            เวลาที่ 3      5:30
            เวลาที่ 4      21:00
            เวลาที่ 5      7:30

ผมจะลำดับค่าเวลา  ต้องทำอย่างไรดีครับ
นอกเหนือจากที่ นำค่าเวลามาบวกกัน
ใครพอมีวิธีที่ดึกว่านี้  ขอคำแนะนำด้วยครับ
ผมใช้ LCD ในการแสดงผลและ CCS Compiler 
   
     ขอบคุณมากครับ




2
 สวัสดีครับพี่ๆ ทุกท่าน

คือผมต้องการที่จะเพิ่ม Ram ให้กับ 18f4550 โดยใช้ EEprom 24C512

จะต้องทำไงดี ขอคำแนะนำด้วยครับ

ผมใช้ CCS ครับ

    ขอบคุณครับ



           

3

      ขายบอร์ด HY-Smart STM32 สภาพใหม่ครับ 

มีอุปกรณ์ ดังนี้

   - ตัวบอร์ด HY-Smart STM32
   - Adaptor
   - RS232 Cable
   - แผ่น CD Program

http://www.micro4you.net/product-HYSmartSTM32-147994-1.html

ผมใช้งานไม่กีครั้งเองครับ

เสนอราคาที่  1000 บาท ฟรีค่าส่งครับ

  สนใจติดต่อ 082-498-2516 > pat ครับ   

  pat56yit@hotmail.com


4

 สวัสดีครับพี่ๆทุกท่าน

คือผม ต้องการที่จะแสดงรูปภาพบนหน้าจอ GLCD128x64 ทำอย่างไรดีครับ

ควบคุมผ่าน IC 74HC595 ครับ

แต่ถ้าควบคุม I/O Port ธรรมดา สามารถแสดงรูปภาพได้ครับ

ขอคำแนะนำด้วยครับ

     ขอบคุณมากครับ

http://320volt.com/en/ccs-c-74hc595-cd4094-128x64-4x20-lcd-kullanimi/

ด้านล่าง คือ Code ที่สามารถแสดงรูปภาพได้ครับ

Code: [Select]
void printf_bmp(char select)
{
   unsigned int16 i,j;
   for(i=0;i<8;i++)//8
   {
         output_low(GLCD_DI);                        // Set for instruction
         glcd_writeByte(GLCD_LEFT, 0x40);    // Set horizontal address to 0
         glcd_writeByte(GLCD_RIGHT,0x40);
         glcd_writeByte(GLCD_LEFT, i | 0xb8);// Set page address
         glcd_writeByte(GLCD_RIGHT, i | 0xb8);
         output_high(GLCD_DI);   
         
         // Loop through the horizontal sections
         for(j=0;j<64;j++)
         {
            if(select==1)
            {
               glcd_writeByte(GLCD_LEFT,img[j+(i*128)]);      // Turn pixels on or off
            } 
         }
         for(j=64;j<128;j++)
         {
            if(select==1)
            {
               glcd_writeByte(GLCD_RIGHT,img[j+(i*128)]);      // Turn pixels on or off
            }
         }       
   }
}





5
   
   สวัสดีปีใหม่ไทยครับ
 
  วันสงกรานต์ปีนี้ หลายๆคนก็ได้กลับบ้านไปหาครอบครัวกัน

  เล่นน้ำกันสนุกสนาน แต่ผมตรงข้ามครับไม่ได้กลับบ้าน ไม่ชอบเล่นน้ำ

 นอนเล่นอยู่ที่ห้อง นั่งทดลองไป ว่างๆก็พาครอบครัวไปเทียวห้าง

 วันสงกรานต์ในปีนี้ คุณได้สังเกตุเห็นอะไรบ้างครับ

 ผมสังเกตุเห็น รอยยิ้มและเสียงหัวเราะ คนไทยมีความมากขึ้น

 วันสงกรานต์เป็นวันรวมผลของเด็กเวร  ซิ่งรถยกล้อกันสนุก

 เมื่อวานเห็น ซิ่งรถจนเกิดอุบัติเหตุ ก็เจ็บกันไป

 วันหยุดยาวแบบนี้ ถนนหลายเส้นทาง รถไม่ค่อยมีดีจังเลยครับ

สุดท้ายนี้ขอให้ทุกคน มีความสุข ในวันสงกรานต์ปีนี้ ครับ

   เดินทาง โดยสวัสดิภาพ นะครับ

 

 

6
Microchip PIC / Encoder 1000/r + PIC
« on: January 30, 2014, 04:44:04 pm »
   
          สวัสดีครับพี่ๆทุกท่าน
   
   ผมต้องการนับ Pulse จาก Encoder ที่มีความลเอียด 1000 P/r

ปัญหาคือ ในขณะที่หมุนรอบ Encoder เร็วๆ ( ใช้มือหมุน ) PIC ตรวจจับสัญญาณไม่ทัน จะแก้ไขปัญหายังดีครับ

ถ้ามีวิธีการตรวจจับสัญญาแบบที่ดีกว่านี้ ขอตัวอย่างด้วยนะครับ

ขอคำแนะนำด้วยครับ 

   coder

Code: [Select]
#include <16F877a.h>
#fuses  HS,NOLVP,NOWDT,NOPROTECT
//#fuses  HSPLL,PLL5,NOLVP,WDT,NOPROTECT
#use delay(clock=20000000)
//#fuses INTRC_IO,PUT,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT     
#include <lcd420.c>

#define CHA1 PIN_C1
#define CHB1 PIN_C0

#define CHA2 PIN_B0
#define CHB2 PIN_B1

unsigned short canalA1,canalB1;
unsigned short canalA2,canalB2;
unsigned short B_libda1=0,B_libda2=0;
unsigned short A_libda1=0,A_libda2=0;
signed int16 qbe_puleoA1=0,qbe_puleoA2=0;
signed int16 angle1=0,angle2=0;

#zero_ram
void main(void)
{
  lcd_init();
  delay_ms(200);
 
  //angle1=0;
  //angle2=0;
  output_high(PIN_D0);
  output_low (PIN_D2);
 
  lcd_gotoxy(1,2);
  printf(lcd_putc,"  Test  Rotary  ");
  lcd_gotoxy(1,3);
  printf(lcd_putc,"     Encoder    ");
  //lcd_gotoxy(1,1);
 // printf(lcd_putc,"............... ");
  delay_ms(1000);
 
  while(true)
  {
     canalA1=input_state(CHA1);
     canalB1=input_state(CHB1);
     
   //  canalA2=input_state(CHA2);
  //   canalB2=input_state(CHB2);
     
     if(canalA1==1)
     {
       if(A_libda1==0)
       {
          A_libda1=1;
         
          if(B_libda1==0)
             {
                   if(canalB1==1)
                   {
                     qbe_puleoA1=qbe_puleoA1+1;
                     B_libda1=1;
                   }
                   
                   if(canalB1==0)
                   {
                     qbe_puleoA1=qbe_puleoA1-1;
                     B_libda1=1;
                   }
               
             }
       }
     }else if(canalA1==0)
           {
               if(A_libda1==1)
               {
                  A_libda1=0;
               
                   if(B_libda1==1)
                      {
                            if(canalB1==1)
                            {
                               B_libda1=0;
                            }else if(canalB1==0)
                                     {
                                       B_libda1=0;
                                     }
                   
                     }
               }
     }
/*                     if(canalA2==1)
                       {
                           if(A_libda2==0)
                           {
                              A_libda2=1;
                           
                            if(B_libda2==0)
                               {
                                     if(canalB2==1)
                                     {
                                      qbe_puleoA2=qbe_puleoA2+1;
                                       B_libda2=1;
                                     }
                                     
                                     if(canalB2==0)
                                     {
                                       qbe_puleoA2=qbe_puleoA2-1;
                                       B_libda2=1;
                                     }
               
                               }
       }
     }
                       if(canalA1==0)
                          {
                              if(A_libda2==1)
                              {
                                 A_libda2=0;
                               
                               if(B_libda2==1)
                                  {
                                        if(canalB2==1)
                                        {
                                          B_libda2=0;
                                        }
                                       
                                        if(canalB2==0)
                                        {
                                          B_libda2=0;
                                        }
                                     
                                  }
                            }
                          }
*/                         
                                 angle1=qbe_puleoA1;
                                 angle2=qbe_puleoA2;
                                 
                  lcd_gotoxy(1,1);                 //
                  printf(lcd_putc," Rotary Encoder ");
                  lcd_gotoxy(1,2);
                  printf(lcd_putc,"----------------");
                  lcd_gotoxy(1,3);                 //
                  printf(lcd_putc,"Cha_1 =  %ld    ",angle1);
                  lcd_gotoxy(1,4);
                  printf(lcd_putc,"Cha_2 =  %ld    ",angle2);
  }//while
 
}//main
 


 
   

7
 สวัสดีครับพี่่ๆทุกท่าน
   
       เครื่อง Program ที่ผมใช้อยู่ไม่มี IC 18f46k80 ทำไงดีครับ

ใช้เครื่อง Program ตัวนี้ครับ  http://www.etteam.com/product/pic/et-pic-isp-usb-v1.html

เราสามารถเพิ่มเบอร์ IC ได้มั้ย หรือมีวิธีอืนที่พอจะแก้ปัญหาตรงนี้ได้ครับ

ขอคำแนะนำด้วยครับ

8
Microchip PIC / สวัสดีครับ ชาว Electoday
« on: October 04, 2013, 08:09:58 am »
เข้าเรื่องเลยนะครับ
  ผมต้องการส่งค่า  ADC แบบไร้สายทำไงดีครับ

หมายถึง ตัวลูก 3 ตัว ส่งให้ตัวแม่อ่านค่า แล้วมาแสดงบน LCD ครับ

ตอนนี้ผมคิดไว้ว่าจะส่งผ่าน RF Module จะได้หรึอเปล่าครับ

มีวิธีอืนที่ดีกว่านี้ไหม ขอคำแนะนำด้วยครับ


ขอขอบคุณมาก ครับ

Pages: [1] 2