Page 74 - ipst-sensorlab
P. 74
l ¤ÁÙ Í× ¡Ò÷´ÅͧáÅÐ㪧 Ò¹µÇÑ µÃǨ¨ºÑ ¢Í§ª´Ø ¡ÅÍ §ÊÁͧ¡Å IPST-MicroBOX
#include // ¼¹Ç¡ä¿Åä źÃÒÃÊÕ Òí ËÃºÑ ¿§ ¡ª ¹èÑ sleep
#include // ¼¹Ç¡ä¿Åä źÃÒÃÊÕ Òí ËÃºÑ ¿§ ¡ª ¹Ñè analog
#include // ¼¹Ç¡ä¿Åä źÃÒÃÊÕ Òí ËÃºÑ ¿§ ¡ª ¹èÑ segment
#include // ¼¹Ç¡ä¿Åä źÃÒÃÊÕ Òí ËÃºÑ ¿§ ¡ª ¹èÑ log10
void main()
{
float A = 0.0; // ¡Òí ˹´µÇÑ á»Ãà¡ºç ¤Ò ¢Í ÁÅÙ Í³Ø ËÀÁÙ ¨Ô Ò¡ ZX-THERMISTOR
float T = 0.0; // ¡Òí ˹´µÇÑ á»Ãà¡ºç ¤Ò Í³Ø ËÀÁÙ ¨Ô Ò¡¡ÒäÒí ¹Ç³(ẺàÅ¢·È¹ÂÔ Á)
float k = 0.0; // ¡Òí ˹´µÇÑ á»ÃÊÒí ËÃºÑ ¡Òí ˹´¤Ò ª´àªÂ
int Tint= 0; // ¡Òí ˹´µÇÑ á»Ãà¡ºç ¤Ò Í³Ø ËÀÁÙ Ô 100 à·Ò ¢Í§¤Ò Í³Ø ËÀÁÙ ¨Ô çÔ
// à¹Í×è §¨Ò¡µÍ §¡ÒÃáÊ´§àÅ¢ 4 ËÅ¡Ñ ·èÕ LED 7 ÊÇ ¹
while(1) // Ż٠ǹÃͺäÁà ¨Ù º
{
A = (float)analog(0); // ÍÒ ¹¤Ò ¢Í ÁÅÙ Í³Ø ËÀÁÙ ¨Ô Ò¡ ZX-THERMISTOR
T = k + 75-((50.0)*log10((10.0*A)/(1024.0-A))); // á»Å§¤Ò Í³Ø ËÀÁÙ Ô
Tint = (int)(T*100.0); // á»Å§¤Ò Í³Ø ËÀÁÙ ãÔ ËÁ ¢Õ ¹Ò´ 100 à·Ò
// áÅÐ໹ ¤Ò àÅ¢¨Òí ¹Ç¹àµÁç à¾Íè× áÊ´§¼Å·èÕ LED µÇÑ àÅ¢ 7 ÊÇ ¹
segment(Tint); // áÊ´§¤Ò ¢Í ÁÅÙ Í³Ø ËÀÁÙ µÔ ÇÑ àÅ¢ 4 ËÅ¡Ñ
segment_dot(3); // ãʨ ´Ø ·È¹ÂÔ Á 2 µÒí á˹§
sleep(1000); // Ë¹Ç §àÇÅÒÊÒí ËÃºÑ ¡ÒÃáÊ´§¼Å
}
}
¤Òí ͸ºÔ ÒÂâ»Ãá¡ÃÁ
àÁÍ×è Ã¹Ñ â»Ãá¡ÃÁ¤Ò ·ÍÕè Ò ¹ä´¨ Ò¡ ZX-THERMISTOR ·àèÕ ªÍ×è ÁµÍ à¢Ò ¡ºÑ ¾Íõ PA0 ¨Ð¶¡Ù á»Å§´Ç ¿§
¡ª ¹èÑ analog(0) ໹ ¢Í ÁÅÙ ´¨Ô µÔ ÍÅ áÅÇ á»Å§à»¹ ¢Í ÁÅÙ ª¹´Ô àÅ¢·È¹ÂÔ Áà¾Í×è ãªà »¹ ¢Í ÁÅÙ ´ºÔ 㹡ÒäÒí ¹Ç³¤Ò
Í³Ø ËÀÁÙ ¼Ô Ò ¹ÊÁ¡Ò÷Õè 5.7 â´ÂÁµÕ ÇÑ á»Ã k ÊÒí ËÃºÑ »ÃºÑ ª´àªÂ ¤Ò ·äèÕ ´¨ Ò¡¡ÒäÒí ¹Ç³¨Ðࡺç äÇã ¹µÇÑ á»Ã T
¤Ò Í³Ø ËÀÁÙ ¨Ô Ã§Ô ·àèÕ ¡ºç äǵ ÇÑ á»Ã T ¨Ð¶¡Ù »ÃºÑ ãËÁ ¤Õ Ò à¾ÁèÔ ¢¹Öé 100 à·Ò áÅÇ »ÃºÑ ໹ ª¹´Ô µÇÑ àÅ¢¨Òí ¹Ç¹
àµÁç ࡺç äÇ· µÕè ÇÑ á»Ã Tint à¾Íè× àµÃÂÕ ÁáÊ´§¼Å¤Ò Í³Ø ËÀÁÙ àÔ »¹ µÇÑ àÅ¢ 4 ËÅ¡Ñ ·È¹ÂÔ Á 2 µÒí á˹§ ¡µÇÑ ÍÂÒ §
¶Ò ¤Ò T = 25.368 àÁÍè× ¼Ò ¹ºÃ÷´Ñ ¤Òí ʧèÑ Tint = (int)(T*100.0); áÅÇ Tint ¨ÐÁ¤Õ Ò à»¹ 2536
¨Ò¡¹¹éÑ ¹Òí ¤Ò ¨Ò¡µÇÑ á»Ã Tint ¨Ð¶¡Ù ¹Òí ä»áÊ´§¼Å·èÕ LED µÇÑ àÅ¢ 7 ÊÇ ¹º¹á¼§Ç§¨Ã DSP-4 áÅÇ ãª¤ Òí ʧèÑ
segment_dot(3); à¾Íè× ¡Òí ˹´¡ÒÃáÊ´§¼Å¨´Ø ·È¹ÂÔ Á 2 µÒí á˹§
â»Ãá¡ÃÁ·Õè A6-2 : ä¿Å TempTest02.c â»Ãá¡ÃÁÀÒÉÒ C ÊÒí ËÃºÑ ·´Êͺ¡ÒÃ㪧 ҹἧǧ¨Ã ZX-
THERMISTOR Ç´Ñ áÅÐáÊ´§¤Ò Í³Ø ËÀÁÙ ¨Ô Ã§Ô (ÁµÕ Í )
#include
#include
#include
#include
void main()
{
float A = 0.0; // ¡Òí ˹´µÇÑ á»Ãà¡ºç ¤Ò ¢Í ÁÅÙ Í³Ø ËÀÁÙ ¨Ô Ò¡ ZX-THERMISTOR
float T = 0.0; // ¡Òí ˹´µÇÑ á»Ãà¡ºç ¤Ò Í³Ø ËÀÁÙ ¨Ô Ò¡¡ÒäÒí ¹Ç³(ẺàÅ¢·È¹ÂÔ Á)
float k = 0.0; // ¡Òí ˹´µÇÑ á»ÃÊÒí ËÃºÑ ¡Òí ˹´¤Ò ª´àªÂ
int Tint= 0; // ¡Òí ˹´µÇÑ á»Ãà¡ºç ¤Ò Í³Ø ËÀÁÙ Ô 100 à·Ò ¢Í§¤Ò Í³Ø ËÀÁÙ ¨Ô çÔ
// à¹Í×è §¨Ò¡µÍ §¡ÒÃáÊ´§àÅ¢ 4 ËÅ¡Ñ ·èÕ LED 7 ÊÇ ¹
while(1) // Ż٠ǹÃͺäÁà ¨Ù º
{
A = (float)analog(0); // ÍÒ ¹¤Ò ¢Í ÁÅÙ Í³Ø ËÀÁÙ ¨Ô Ò¡ ZX-THERMISTOR
T = k + 75-((50.0)*log10((10.0*A)/(1024.0-A))); // á»Å§¤Ò Í³Ø ËÀÁÙ Ô
Tint = (int)(T*100.0); // á»Å§¤Ò Í³Ø ËÀÁÙ ãÔ ËÁ ¢Õ ¹Ò´ 100 à·Ò
// áÅÐ໹ ¤Ò àÅ¢¨Òí ¹Ç¹àµÁç à¾Íè× áÊ´§¼Å·èÕ LED µÇÑ àÅ¢ 7 ÊÇ ¹
segment(Tint); // áÊ´§¤Ò ¢Í ÁÅÙ Í³Ø ËÀÁÙ µÔ ÇÑ àÅ¢ 4 ËÅ¡Ñ
segment_dot(3); // ãʨ ´Ø ·È¹ÂÔ Á 2 µÒí á˹§
sleep(1000); // Ë¹Ç §àÇÅÒÊÒí ËÃºÑ ¡ÒÃáÊ´§¼Å
}
}
¤Òí ͸ºÔ ÒÂâ»Ãá¡ÃÁ
àÁÍ×è Ã¹Ñ â»Ãá¡ÃÁ¤Ò ·ÍÕè Ò ¹ä´¨ Ò¡ ZX-THERMISTOR ·àèÕ ªÍ×è ÁµÍ à¢Ò ¡ºÑ ¾Íõ PA0 ¨Ð¶¡Ù á»Å§´Ç ¿§
¡ª ¹èÑ analog(0) ໹ ¢Í ÁÅÙ ´¨Ô µÔ ÍÅ áÅÇ á»Å§à»¹ ¢Í ÁÅÙ ª¹´Ô àÅ¢·È¹ÂÔ Áà¾Í×è ãªà »¹ ¢Í ÁÅÙ ´ºÔ 㹡ÒäÒí ¹Ç³¤Ò
Í³Ø ËÀÁÙ ¼Ô Ò ¹ÊÁ¡Ò÷Õè 5.7 â´ÂÁµÕ ÇÑ á»Ã k ÊÒí ËÃºÑ »ÃºÑ ª´àªÂ ¤Ò ·äèÕ ´¨ Ò¡¡ÒäÒí ¹Ç³¨Ðࡺç äÇã ¹µÇÑ á»Ã T
¤Ò Í³Ø ËÀÁÙ ¨Ô Ã§Ô ·àèÕ ¡ºç äǵ ÇÑ á»Ã T ¨Ð¶¡Ù »ÃºÑ ãËÁ ¤Õ Ò à¾ÁèÔ ¢¹Öé 100 à·Ò áÅÇ »ÃºÑ ໹ ª¹´Ô µÇÑ àÅ¢¨Òí ¹Ç¹
àµÁç ࡺç äÇ· µÕè ÇÑ á»Ã Tint à¾Íè× àµÃÂÕ ÁáÊ´§¼Å¤Ò Í³Ø ËÀÁÙ àÔ »¹ µÇÑ àÅ¢ 4 ËÅ¡Ñ ·È¹ÂÔ Á 2 µÒí á˹§ ¡µÇÑ ÍÂÒ §
¶Ò ¤Ò T = 25.368 àÁÍè× ¼Ò ¹ºÃ÷´Ñ ¤Òí ʧèÑ Tint = (int)(T*100.0); áÅÇ Tint ¨ÐÁ¤Õ Ò à»¹ 2536
¨Ò¡¹¹éÑ ¹Òí ¤Ò ¨Ò¡µÇÑ á»Ã Tint ¨Ð¶¡Ù ¹Òí ä»áÊ´§¼Å·èÕ LED µÇÑ àÅ¢ 7 ÊÇ ¹º¹á¼§Ç§¨Ã DSP-4 áÅÇ ãª¤ Òí ʧèÑ
segment_dot(3); à¾Íè× ¡Òí ˹´¡ÒÃáÊ´§¼Å¨´Ø ·È¹ÂÔ Á 2 µÒí á˹§
â»Ãá¡ÃÁ·Õè A6-2 : ä¿Å TempTest02.c â»Ãá¡ÃÁÀÒÉÒ C ÊÒí ËÃºÑ ·´Êͺ¡ÒÃ㪧 ҹἧǧ¨Ã ZX-
THERMISTOR Ç´Ñ áÅÐáÊ´§¤Ò Í³Ø ËÀÁÙ ¨Ô Ã§Ô (ÁµÕ Í )