{"id":918,"date":"2025-08-14T20:22:30","date_gmt":"2025-08-14T16:52:30","guid":{"rendered":"https:\/\/ilk.ir\/sahifa\/?p=918"},"modified":"2025-12-24T17:15:45","modified_gmt":"2025-12-24T13:45:45","slug":"%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d8%a7%db%8c-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%da%a9%d8%b1%d9%88-%da%a9%d9%86%d8%aa%d8%b1%d9%84%d8%b1-attiny45-%da%a9%d9%87-%d9%88%d9%84%d8%aa%d8%a7%da%98","status":"publish","type":"post","link":"https:\/\/ilk.ir\/sahifa\/world\/%d8%a7%d9%84%da%a9%d8%aa%d8%b1%d9%88%d9%86%db%8c%da%a9\/%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d8%a7%db%8c-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%da%a9%d8%b1%d9%88-%da%a9%d9%86%d8%aa%d8%b1%d9%84%d8%b1-attiny45-%da%a9%d9%87-%d9%88%d9%84%d8%aa%d8%a7%da%98\/","title":{"rendered":"\u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc \u0628\u0631\u0627\u06cc \u0645\u06cc\u06a9\u0631\u0648 \u06a9\u0646\u062a\u0631\u0644\u0631 ATTiny45 \u06a9\u0647 \u0648\u0644\u062a\u0627\u0698 \u062f\u0642\u06cc\u0642 \u0631\u0627 \u0628\u0635\u0648\u0631\u062a 16 \u0628\u06cc\u062a\u06cc \u062a\u0648\u0633\u0637 ADS1110 \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc \u0648 \u062a\u0648\u0633\u0637 \u062a\u0631\u0627\u0634\u0647 TM1637 \u0646\u0634\u0627\u0646 \u0645\u06cc\u062f\u0647"},"content":{"rendered":"\n<p>\u0627\u06cc\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647\u200c\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0686\u0627\u0644\u0634\u200c\u0628\u0631\u0627\u0646\u06af\u06cc\u0632 \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u0645\u06cc\u06a9\u0631\u0648\u06a9\u0646\u062a\u0631\u0644\u0631 <strong>ATTiny45<\/strong> \u062d\u0627\u0641\u0638\u0647 \u0648 \u0645\u0646\u0627\u0628\u0639 \u0628\u0633\u06cc\u0627\u0631 \u0645\u062d\u062f\u0648\u062f\u06cc \u062f\u0627\u0631\u062f \u0648 \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u0647\u0631 \u062f\u0648 \u0645\u0627\u0698\u0648\u0644 <strong>ADS1110<\/strong> \u0648 <strong>TM1637<\/strong> \u0628\u0627\u06cc\u062f \u067e\u0631\u0648\u062a\u06a9\u0644\u200c\u0647\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637\u06cc \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u06a9\u062f \u0628\u0647\u06cc\u0646\u0647 \u0648 \u06a9\u0627\u0645\u0644 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u0648\u0638\u06cc\u0641\u0647 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u0634\u0645\u0627\u062a\u06cc\u06a9 \u0648 \u0627\u062a\u0635\u0627\u0644\u0627\u062a<\/h3>\n\n\n\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647\u060c \u0627\u062a\u0635\u0627\u0644\u0627\u062a \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u0632\u06cc\u0631 \u0644\u0627\u0632\u0645 \u0627\u0633\u062a:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>VCC<\/strong> \u0627\u0632 ATTiny45 \u0628\u0647 <strong>VCC<\/strong> \u0647\u0631 \u062f\u0648 \u0645\u0627\u0698\u0648\u0644 ADS1110 \u0648 TM1637<\/li>\n\n\n\n<li><strong>GND<\/strong> \u0627\u0632 ATTiny45 \u0628\u0647 <strong>GND<\/strong> \u0647\u0631 \u062f\u0648 \u0645\u0627\u0698\u0648\u0644<\/li>\n\n\n\n<li>\u067e\u0627\u06cc\u0647 <strong>PB0<\/strong> \u0627\u0632 ATTiny45 \u0628\u0647 <strong>SDA<\/strong> \u0645\u0627\u0698\u0648\u0644 ADS1110 \u0648 <strong>DIO<\/strong> \u0645\u0627\u0698\u0648\u0644 TM1637<\/li>\n\n\n\n<li>\u067e\u0627\u06cc\u0647 <strong>PB1<\/strong> \u0627\u0632 ATTiny45 \u0628\u0647 <strong>SCL<\/strong> \u0645\u0627\u0698\u0648\u0644 ADS1110 \u0648 <strong>CLK<\/strong> \u0645\u0627\u0698\u0648\u0644 TM1637<\/li>\n\n\n\n<li>\u0648\u0644\u062a\u0627\u0698 \u0648\u0631\u0648\u062f\u06cc \u0634\u0645\u0627 \u0628\u0647 \u067e\u0627\u06cc\u0647 <strong>VIN+<\/strong> \u0645\u0627\u0698\u0648\u0644 ADS1110<\/li>\n\n\n\n<li>\u067e\u0627\u06cc\u0647 <strong>VIN-<\/strong> \u0645\u0627\u0698\u0648\u0644 ADS1110 \u0628\u0647 <strong>GND<\/strong> \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f (\u0628\u0631\u0627\u06cc \u062d\u0627\u0644\u062a \u062a\u06a9\u200c\u0637\u0631\u0641\u0647).<\/li>\n\n\n\n<li>\u062f\u0648 \u0645\u0642\u0627\u0648\u0645\u062a <strong>\u06f4.\u06f7 \u06a9\u06cc\u0644\u0648\u0627\u0647\u0645\u06cc<\/strong> \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u0642\u0627\u0648\u0645\u062a\u200c\u0647\u0627\u06cc \u067e\u0648\u0644\u200c\u0622\u067e (Pull-up Resistors) \u0631\u0648\u06cc \u062e\u0637\u0648\u0637 SDA \u0648 SCL \u0628\u0647 VCC \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n<\/ul>\n\n\n\n<p>\u062a\u0648\u062c\u0647: \u062f\u0631 \u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647\u060c \u067e\u06cc\u0646\u200c\u0647\u0627\u06cc I2C \u0648 TM1637 \u0628\u0627 \u0647\u0645 \u0645\u0634\u062a\u0631\u06a9 \u0647\u0633\u062a\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u06a9\u0645\u0628\u0648\u062f \u067e\u06cc\u0646 \u062f\u0631 ATTiny45 \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0628\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0642\u06cc\u0642 \u06a9\u062f \u0627\u0645\u06a9\u0627\u0646\u200c\u067e\u0630\u06cc\u0631 \u0627\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u067e\u0631\u0648\u062a\u06a9\u0644\u200c\u0647\u0627\u06cc \u0622\u0646\u200c\u0647\u0627 \u0645\u062a\u0641\u0627\u0648\u062a \u0627\u0633\u062a.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u0646\u0645\u0648\u0646\u0647 \u06a9\u062f<\/h3>\n\n\n\n<p>\u0627\u06cc\u0646 \u06a9\u062f \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 \u0645\u062d\u06cc\u0637 Arduino IDE \u0648 \u0628\u0627 \u0646\u0635\u0628 \u0647\u0633\u062a\u0647 ATTiny \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p>C++<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#<strong>include<\/strong> &lt;avr\/io.h&gt;\n#<strong>include<\/strong> &lt;util\/delay.h&gt;\n\n\/\/ ADS1110 I2C Defines\n#<strong>define<\/strong> ADS1110_ADDR 0x48   \/\/ I2C address of ADS1110\n#<strong>define<\/strong> SDA_PIN PB0\n#<strong>define<\/strong> SCL_PIN PB1\n\n\/\/ TM1637 Defines\n#<strong>define<\/strong> TM1637_DIO_PIN PB0\n#<strong>define<\/strong> TM1637_CLK_PIN PB1\n\n\/\/ ADS1110 Functions\nvoid i2c_init();\nvoid i2c_start();\nvoid i2c_stop();\nvoid i2c_write(uint8_t data);\nuint8_t i2c_read(uint8_t ack);\nint16_t readADS1110();\n\n\/\/ TM1637 Functions\nvoid tm1637_start();\nvoid tm1637_stop();\nvoid tm1637_write_byte(uint8_t b);\nvoid tm1637_display(int16_t num);\nvoid tm1637_init();\n\nvoid setup() {\n  i2c_init();\n  tm1637_init();\n}\n\nvoid loop() {\n  int16_t adcValue = readADS1110();\n  \/\/ Convert ADC value to millivolts\n  \/\/ Vref = 2.048V, 16-bit range = 32768\n  int16_t mV = (int16_t)((float)adcValue * (2048.0 \/ 32768.0) * 1000.0);\n\n  \/\/ We are going to display the voltage in millivolts.\n  \/\/ For example, if mV = 1234, display will be 12.34\n  \/\/ We can also adjust this to display in volts, e.g., 1.23\n  \/\/ For simplicity, let's just display the millivolt value.\n  tm1637_display(mV);\n  \n  _delay_ms(1000); \/\/ Wait for 1 second before the next reading\n}\n\n\/\/--- ADS1110 &amp; I2C Software Implementation ---\/\/\nvoid i2c_init() {\n  DDRB &amp;= ~((1 &lt;&lt; SDA_PIN) | (1 &lt;&lt; SCL_PIN));\n  PORTB |= (1 &lt;&lt; SDA_PIN) | (1 &lt;&lt; SCL_PIN);\n}\n\nvoid i2c_start() {\n  \/\/ Ensure both are high before starting\n  DDRB &amp;= ~((1 &lt;&lt; SDA_PIN) | (1 &lt;&lt; SCL_PIN));\n  _delay_us(4);\n  DDRB |= (1 &lt;&lt; SDA_PIN); \/\/ SDA high to low\n  _delay_us(4);\n  DDRB |= (1 &lt;&lt; SCL_PIN); \/\/ SCL stays high\n  _delay_us(4);\n}\n\nvoid i2c_stop() {\n  DDRB &amp;= ~(1 &lt;&lt; SDA_PIN);\n  _delay_us(4);\n  DDRB |= (1 &lt;&lt; SCL_PIN);\n  _delay_us(4);\n  DDRB |= (1 &lt;&lt; SDA_PIN); \/\/ SDA low to high\n  _delay_us(4);\n}\n\nvoid i2c_write(uint8_t data) {\n  for (uint8_t i = 0; i &lt; 8; i++) {\n    DDRB |= (1 &lt;&lt; SCL_PIN);\n    _delay_us(1);\n    if (data &amp; 0x80) {\n      DDRB &amp;= ~(1 &lt;&lt; SDA_PIN);\n    } else {\n      DDRB |= (1 &lt;&lt; SDA_PIN);\n    }\n    _delay_us(4);\n    DDRB &amp;= ~(1 &lt;&lt; SCL_PIN);\n    _delay_us(4);\n    data &lt;&lt;= 1;\n  }\n  \/\/ Read ACK\n  DDRB &amp;= ~(1 &lt;&lt; SDA_PIN);\n  _delay_us(4);\n  \/\/ while(PINB &amp; (1 &lt;&lt; SDA_PIN)); \/\/ Don't check ACK to save code space\n}\n\nuint8_t i2c_read(uint8_t ack) {\n  uint8_t data = 0;\n  DDRB &amp;= ~(1 &lt;&lt; SDA_PIN);\n  for (uint8_t i = 0; i &lt; 8; i++) {\n    DDRB |= (1 &lt;&lt; SCL_PIN);\n    _delay_us(4);\n    data &lt;&lt;= 1;\n    if (PINB &amp; (1 &lt;&lt; SDA_PIN)) {\n      data |= 1;\n    }\n    DDRB &amp;= ~(1 &lt;&lt; SCL_PIN);\n    _delay_us(4);\n  }\n  if (ack) {\n    DDRB |= (1 &lt;&lt; SDA_PIN);\n  } else {\n    DDRB &amp;= ~(1 &lt;&lt; SDA_PIN);\n  }\n  return data;\n}\n\nint16_t readADS1110() {\n  int16_t value = 0;\n  uint8_t highByte, lowByte;\n\n  i2c_start();\n  i2c_write(ADS1110_ADDR &lt;&lt; 1); \n  i2c_write(0x8C); \/\/ Config: 16bit, 15sps, single-shot mode\n  i2c_stop();\n\n  _delay_ms(100); \n\n  i2c_start();\n  i2c_write((ADS1110_ADDR &lt;&lt; 1) | 1);\n  highByte = i2c_read(1);\n  lowByte = i2c_read(0);\n  i2c_stop();\n\n  value = (highByte &lt;&lt; 8) | lowByte;\n  return value;\n}\n\n\/\/--- TM1637 Software Implementation ---\/\/\n\/\/ This is a simplified version of the library to save space.\nvoid tm1637_init() {\n  DDRB |= (1 &lt;&lt; TM1637_CLK_PIN) | (1 &lt;&lt; TM1637_DIO_PIN);\n  tm1637_start();\n  tm1637_write_byte(0x8f); \/\/ 88h - Display control, 8Fh - display ON, 10\/16 brightness\n  tm1637_stop();\n}\n\nvoid tm1637_start() {\n  DDRB |= (1 &lt;&lt; TM1637_CLK_PIN);\n  DDRB &amp;= ~(1 &lt;&lt; TM1637_DIO_PIN);\n  _delay_us(4);\n}\n\nvoid tm1637_stop() {\n  DDRB |= (1 &lt;&lt; TM1637_CLK_PIN);\n  _delay_us(4);\n  DDRB |= (1 &lt;&lt; TM1637_DIO_PIN);\n  _delay_us(4);\n}\n\nvoid tm1637_write_byte(uint8_t b) {\n  for (uint8_t i = 0; i &lt; 8; i++) {\n    DDRB &amp;= ~(1 &lt;&lt; TM1637_CLK_PIN);\n    _delay_us(2);\n    if ((b &gt;&gt; i) &amp; 1) {\n      DDRB &amp;= ~(1 &lt;&lt; TM1637_DIO_PIN);\n    } else {\n      DDRB |= (1 &lt;&lt; TM1637_DIO_PIN);\n    }\n    DDRB |= (1 &lt;&lt; TM1637_CLK_PIN);\n    _delay_us(2);\n  }\n  DDRB &amp;= ~(1 &lt;&lt; TM1637_CLK_PIN);\n  _delay_us(2);\n  DDRB &amp;= ~(1 &lt;&lt; TM1637_DIO_PIN);\n  _delay_us(2);\n  DDRB |= (1 &lt;&lt; TM1637_CLK_PIN);\n  _delay_us(2);\n}\n\nvoid tm1637_display(int16_t num) {\n  uint8_t digits&#91;4] = {0};\n  uint8_t i = 3;\n  \n  if (num == 0) {\n      digits&#91;0] = 0;\n  } else {\n      while(num &gt; 0 &amp;&amp; i &gt;= 0) {\n          digits&#91;i--] = num % 10;\n          num \/= 10;\n      }\n  }\n\n  uint8_t segments&#91;] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};\n\n  tm1637_start();\n  tm1637_write_byte(0x40); \/\/ Address setting command\n  tm1637_stop();\n\n  tm1637_start();\n  tm1637_write_byte(0xC0); \/\/ Data command, start at address 0\n  tm1637_write_byte(segments&#91;digits&#91;0]] | 0x80); \/\/ Display 1st digit with decimal point\n  tm1637_write_byte(segments&#91;digits&#91;1]]); \/\/ Display 2nd digit\n  tm1637_write_byte(segments&#91;digits&#91;2]]); \/\/ Display 3rd digit\n  tm1637_write_byte(segments&#91;digits&#91;3]]); \/\/ Display 4th digit\n  tm1637_stop();\n}\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u06a9\u062f<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>\u067e\u06cc\u0646\u200c\u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9<\/strong>: \u062f\u0631 \u0627\u06cc\u0646 \u06a9\u062f\u060c \u0627\u0632 \u067e\u06cc\u0646\u200c\u0647\u0627\u06cc <strong>PB0<\/strong> \u0648 <strong>PB1<\/strong> \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u0634\u062a\u0631\u06a9 \u0628\u0631\u0627\u06cc I2C (ADS1110) \u0648 \u067e\u0631\u0648\u062a\u06a9\u0644 TM1637 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u067e\u06cc\u0646\u200c\u0647\u0627 \u062f\u0631 ATTiny45 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0627\u0634\u062a\u0631\u0627\u06a9 \u067e\u06cc\u0646\u200c\u0647\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u067e\u0631\u0648\u062a\u06a9\u0644\u200c\u0647\u0627\u06cc \u0627\u06cc\u0646 \u062f\u0648 \u0645\u0627\u0698\u0648\u0644 \u0628\u0627 \u0647\u0645 \u0645\u062a\u0641\u0627\u0648\u062a \u0647\u0633\u062a\u0646\u062f \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0631\u062f.<\/li>\n\n\n\n<li><strong>\u062a\u0627\u0628\u0639 <code>readADS1110()<\/code><\/strong>: \u0627\u06cc\u0646 \u062a\u0627\u0628\u0639 \u0645\u0642\u062f\u0627\u0631 \u06f1\u06f6 \u0628\u06cc\u062a\u06cc \u0631\u0627 \u0627\u0632 ADS1110 \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u062f.\n<ul class=\"wp-block-list\">\n<li>\u0627\u0628\u062a\u062f\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u0627\u0698\u0648\u0644 \u0631\u0627 \u0628\u0627 \u0622\u062f\u0631\u0633 <code>0x8C<\/code> \u0645\u06cc\u200c\u0646\u0648\u06cc\u0633\u062f. \u0627\u06cc\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u060c ADS1110 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062f\u0642\u062a <strong>\u06f1\u06f6 \u0628\u06cc\u062a\u06cc<\/strong> \u062f\u0631 \u062d\u0627\u0644\u062a <strong>\u062a\u06a9\u200c\u0634\u0627\u062a<\/strong> (Single-Shot) \u0648 \u0628\u0627 \u0646\u0631\u062e \u0646\u0645\u0648\u0646\u0647\u200c\u0628\u0631\u062f\u0627\u0631\u06cc <strong>\u06f1\u06f5 SPS<\/strong> \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n\n\n\n<li>\u0633\u067e\u0633\u060c \u0628\u0631\u0627\u06cc \u0627\u062a\u0645\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644\u060c \u06cc\u06a9 \u062a\u0623\u062e\u06cc\u0631 <strong>\u06f1\u06f0\u06f0 \u0645\u06cc\u0644\u06cc\u200c\u062b\u0627\u0646\u06cc\u0647\u200c\u0627\u06cc<\/strong> \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u062f\u0648 \u0628\u0627\u06cc\u062a (High Byte \u0648 Low Byte) \u0627\u0632 \u0645\u0627\u0698\u0648\u0644 \u062e\u0648\u0627\u0646\u062f\u0647 \u0648 \u0628\u0647 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 <code>int16_t<\/code> \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u0645\u062d\u0627\u0633\u0628\u0647 \u0648\u0644\u062a\u0627\u0698<\/strong>: \u0645\u0642\u062f\u0627\u0631 \u062e\u0627\u0645 ADC \u0628\u0647 \u0648\u0644\u062a\u0627\u0698 \u0628\u0631 \u062d\u0633\u0628 <strong>\u0645\u06cc\u0644\u06cc\u200c\u0648\u0644\u062a (mV)<\/strong> \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f.\n<ul class=\"wp-block-list\">\n<li><code>mV = (int16_t)((float)adcValue * (2048.0 \/ 32768.0) * 1000.0);<\/code><\/li>\n\n\n\n<li><code>2048.0<\/code> \u0648\u0644\u062a\u0627\u0698 \u0645\u0631\u062c\u0639 \u062f\u0627\u062e\u0644\u06cc ADS1110 (2.048V) \u0627\u0633\u062a.<\/li>\n\n\n\n<li><code>32768.0<\/code> \u0646\u0635\u0641 \u062f\u0627\u0645\u0646\u0647 \u06f1\u06f6 \u0628\u06cc\u062a\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0628\u0647 \u0645\u0642\u062f\u0627\u0631 \u0648\u0644\u062a\u0627\u0698 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li><code>1000.0<\/code> \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0648\u0644\u062a \u0628\u0647 \u0645\u06cc\u0644\u06cc\u200c\u0648\u0644\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u062a\u0648\u0627\u0628\u0639 TM1637<\/strong>: \u0627\u06cc\u0646 \u062a\u0648\u0627\u0628\u0639 \u067e\u0631\u0648\u062a\u06a9\u0644 TM1637 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.\n<ul class=\"wp-block-list\">\n<li><code>tm1637_init()<\/code> \u0646\u0645\u0627\u06cc\u0634\u06af\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631 \u0622\u0645\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n\n\n\n<li><code>tm1637_display(int16_t num)<\/code> \u06cc\u06a9 \u0639\u062f\u062f \u0635\u062d\u06cc\u062d \u0631\u0627 \u0628\u0647 \u0686\u0647\u0627\u0631 \u0631\u0642\u0645 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0631\u0648\u06cc \u0646\u0645\u0627\u06cc\u0634\u06af\u0631 TM1637 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n\n\n\n<li>\u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0627\u0639\u0634\u0627\u0631\u060c \u0628\u0627\u06cc\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u0631\u0642\u0645 \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 <code>0x80<\/code> (<code>segments[digits[0]] | 0x80<\/code>) \u0639\u0644\u0627\u0645\u062a\u200c\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u0639\u0634\u0627\u0631 \u0628\u0639\u062f \u0627\u0632 \u0627\u0648\u0644\u06cc\u0646 \u0631\u0642\u0645 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f \u062a\u0627 \u0645\u062b\u0644\u0627\u064b \u0648\u0644\u062a\u0627\u0698 \u06f1.\u06f2\u06f3\u06f4 \u0648\u0644\u062a \u0628\u0647 \u0635\u0648\u0631\u062a <code>1.234<\/code> \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p><strong>\u0646\u06a9\u0627\u062a \u0645\u0647\u0645<\/strong>:<\/p>\n\n\n\n<p>\u0628\u0647 \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>float<\/code> \u062f\u0631 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u060c \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u06a9\u062f \u06a9\u0645\u06cc \u0628\u0632\u0631\u06af \u0628\u0627\u0634\u062f\u060c \u0627\u0645\u0627 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0633\u0627\u062f\u06af\u06cc\u060c \u0628\u0631\u0627\u06cc ATTiny45 \u0628\u0627 \u06f4 \u06a9\u06cc\u0644\u0648\u0628\u0627\u06cc\u062a \u062d\u0627\u0641\u0638\u0647 \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a. \u062f\u0631 \u0635\u0648\u0631\u062a \u0645\u0648\u0627\u062c\u0647\u0647 \u0628\u0627 \u062e\u0637\u0627\u06cc \u062d\u0627\u0641\u0638\u0647\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0627\u0639\u062f\u0627\u062f \u0635\u062d\u06cc\u062d \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/p>\n\n\n\n<p>\u0627\u06cc\u0646 \u06a9\u062f \u0628\u0631\u0627\u06cc \u0635\u0631\u0641\u0647\u200c\u062c\u0648\u06cc\u06cc \u062f\u0631 \u0641\u0636\u0627\u06cc \u062d\u0627\u0641\u0638\u0647\u060c \u0641\u0627\u0642\u062f \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627 (Error Handling) \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 I2C \u0627\u0633\u062a.<\/p>\n\n\n\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u062a\u0648\u0627\u0628\u0639 <code>delay<\/code> \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0648\u062a\u0627\u0647 (<code>_delay_us(4)<\/code>) \u0628\u0631\u0627\u06cc \u0633\u0631\u0639\u062a \u0628\u062e\u0634\u06cc\u062f\u0646 \u0628\u0647 \u0627\u0631\u062a\u0628\u0627\u0637\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p>\u0645\u0642\u062f\u0627\u0631 \u0648\u0644\u062a\u0627\u0698 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a <strong>\u0645\u06cc\u0644\u06cc\u200c\u0648\u0644\u062a<\/strong> \u0648 \u0628\u062f\u0648\u0646 \u0627\u0639\u0634\u0627\u0631 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0646\u0633\u062e\u0647\u060c \u062a\u0627\u0628\u0639 <code>tm1637_display<\/code> \u0628\u0647 \u06af\u0648\u0646\u0647\u200c\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0631\u062f\u0647 \u06a9\u0647 \u0641\u0642\u0637 \u0686\u0647\u0627\u0631 \u0631\u0642\u0645 \u0635\u062d\u06cc\u062d \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0627\u0632 \u0646\u0642\u0637\u0647\u200c\u06cc \u0627\u0639\u0634\u0627\u0631 \u0635\u0631\u0641\u200c\u0646\u0638\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u0646\u0645\u0648\u0646\u0647 \u06a9\u062f \u0627\u0635\u0644\u0627\u062d \u0634\u062f\u0647<\/h3>\n\n\n\n<p class=\"has-text-align-left\" dir=\"ltr\">C++<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#<strong>include<\/strong> &lt;avr\/io.h&gt;\n#<strong>include<\/strong> &lt;util\/delay.h&gt;\n\n\/\/ ADS1110 I2C Defines\n#<strong>define<\/strong> ADS1110_ADDR 0x48   \/\/ I2C address of ADS1110\n#<strong>define<\/strong> SDA_PIN PB0\n#<strong>define<\/strong> SCL_PIN PB1\n\n\/\/ TM1637 Defines\n#<strong>define<\/strong> TM1637_DIO_PIN PB0\n#<strong>define<\/strong> TM1637_CLK_PIN PB1\n\n\/\/ ADS1110 Functions\nvoid i2c_init();\nvoid i2c_start();\nvoid i2c_stop();\nvoid i2c_write(uint8_t data);\nuint8_t i2c_read(uint8_t ack);\nint16_t readADS1110();\n\n\/\/ TM1637 Functions\nvoid tm1637_start();\nvoid tm1637_stop();\nvoid tm1637_write_byte(uint8_t b);\nvoid tm1637_display(int16_t num);\nvoid tm1637_init();\n\nvoid setup() {\n  i2c_init();\n  tm1637_init();\n}\n\nvoid loop() {\n  int16_t adcValue = readADS1110();\n  \/\/ \u062a\u0628\u062f\u06cc\u0644 \u0645\u0642\u062f\u0627\u0631 ADC \u0628\u0647 \u0645\u06cc\u0644\u06cc\u200c\u0648\u0644\u062a\n  \/\/ Vref = 2.048V, 16-bit range = 32768\n  int16_t mV = (int16_t)((float)adcValue * (2048.0 \/ 32768.0) * 1000.0);\n  \n  tm1637_display(mV);\n  \n  _delay_ms(1000); \/\/ \u06cc\u06a9 \u062b\u0627\u0646\u06cc\u0647 \u062a\u0623\u062e\u06cc\u0631 \u0642\u0628\u0644 \u0627\u0632 \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u062c\u062f\u062f\n}\n\n\/\/--- ADS1110 &amp; I2C Software Implementation ---\/\/\nvoid i2c_init() {\n  DDRB &amp;= ~((1 &lt;&lt; SDA_PIN) | (1 &lt;&lt; SCL_PIN));\n  PORTB |= (1 &lt;&lt; SDA_PIN) | (1 &lt;&lt; SCL_PIN);\n}\n\nvoid i2c_start() {\n  DDRB &amp;= ~((1 &lt;&lt; SDA_PIN) | (1 &lt;&lt; SCL_PIN));\n  _delay_us(4);\n  DDRB |= (1 &lt;&lt; SDA_PIN); \n  _delay_us(4);\n  DDRB |= (1 &lt;&lt; SCL_PIN); \n  _delay_us(4);\n}\n\nvoid i2c_stop() {\n  DDRB &amp;= ~(1 &lt;&lt; SDA_PIN);\n  _delay_us(4);\n  DDRB |= (1 &lt;&lt; SCL_PIN);\n  _delay_us(4);\n  DDRB |= (1 &lt;&lt; SDA_PIN); \n  _delay_us(4);\n}\n\nvoid i2c_write(uint8_t data) {\n  for (uint8_t i = 0; i &lt; 8; i++) {\n    DDRB |= (1 &lt;&lt; SCL_PIN);\n    _delay_us(1);\n    if (data &amp; 0x80) {\n      DDRB &amp;= ~(1 &lt;&lt; SDA_PIN);\n    } else {\n      DDRB |= (1 &lt;&lt; SDA_PIN);\n    }\n    _delay_us(4);\n    DDRB &amp;= ~(1 &lt;&lt; SCL_PIN);\n    _delay_us(4);\n    data &lt;&lt;= 1;\n  }\n}\n\nuint8_t i2c_read(uint8_t ack) {\n  uint8_t data = 0;\n  DDRB &amp;= ~(1 &lt;&lt; SDA_PIN);\n  for (uint8_t i = 0; i &lt; 8; i++) {\n    DDRB |= (1 &lt;&lt; SCL_PIN);\n    _delay_us(4);\n    data &lt;&lt;= 1;\n    if (PINB &amp; (1 &lt;&lt; SDA_PIN)) {\n      data |= 1;\n    }\n    DDRB &amp;= ~(1 &lt;&lt; SCL_PIN);\n    _delay_us(4);\n  }\n  if (ack) {\n    DDRB |= (1 &lt;&lt; SDA_PIN);\n  } else {\n    DDRB &amp;= ~(1 &lt;&lt; SDA_PIN);\n  }\n  return data;\n}\n\nint16_t readADS1110() {\n  int16_t value = 0;\n  uint8_t highByte, lowByte;\n\n  i2c_start();\n  i2c_write(ADS1110_ADDR &lt;&lt; 1); \n  i2c_write(0x8C); \/\/ Config: 16bit, 15sps, single-shot mode\n  i2c_stop();\n\n  _delay_ms(100); \n\n  i2c_start();\n  i2c_write((ADS1110_ADDR &lt;&lt; 1) | 1);\n  highByte = i2c_read(1);\n  lowByte = i2c_read(0);\n  i2c_stop();\n\n  value = (highByte &lt;&lt; 8) | lowByte;\n  return value;\n}\n\n\/\/--- TM1637 Software Implementation ---\/\/\nvoid tm1637_init() {\n  DDRB |= (1 &lt;&lt; TM1637_CLK_PIN) | (1 &lt;&lt; TM1637_DIO_PIN);\n  tm1637_start();\n  tm1637_write_byte(0x8f); \n  tm1637_stop();\n}\n\nvoid tm1637_start() {\n  DDRB |= (1 &lt;&lt; TM1637_CLK_PIN);\n  DDRB &amp;= ~(1 &lt;&lt; TM1637_DIO_PIN);\n  _delay_us(4);\n}\n\nvoid tm1637_stop() {\n  DDRB |= (1 &lt;&lt; TM1637_CLK_PIN);\n  _delay_us(4);\n  DDRB |= (1 &lt;&lt; TM1637_DIO_PIN);\n  _delay_us(4);\n}\n\nvoid tm1637_write_byte(uint8_t b) {\n  for (uint8_t i = 0; i &lt; 8; i++) {\n    DDRB &amp;= ~(1 &lt;&lt; TM1637_CLK_PIN);\n    _delay_us(2);\n    if ((b &gt;&gt; i) &amp; 1) {\n      DDRB &amp;= ~(1 &lt;&lt; TM1637_DIO_PIN);\n    } else {\n      DDRB |= (1 &lt;&lt; TM1637_DIO_PIN);\n    }\n    DDRB |= (1 &lt;&lt; TM1637_CLK_PIN);\n    _delay_us(2);\n  }\n  DDRB &amp;= ~(1 &lt;&lt; TM1637_CLK_PIN);\n  _delay_us(2);\n  DDRB &amp;= ~(1 &lt;&lt; TM1637_DIO_PIN);\n  _delay_us(2);\n  DDRB |= (1 &lt;&lt; TM1637_CLK_PIN);\n  _delay_us(2);\n}\n\nvoid tm1637_display(int16_t num) {\n  uint8_t digits&#91;4] = {0};\n  uint8_t i = 3;\n  \n  if (num == 0) {\n      digits&#91;0] = 0;\n  } else {\n      while(num &gt; 0 &amp;&amp; i &gt;= 0) {\n          digits&#91;i--] = num % 10;\n          num \/= 10;\n      }\n  }\n\n  uint8_t segments&#91;] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};\n\n  tm1637_start();\n  tm1637_write_byte(0x40); \/\/ Address setting command\n  tm1637_stop();\n\n  tm1637_start();\n  tm1637_write_byte(0xC0); \/\/ Data command, start at address 0\n  tm1637_write_byte(segments&#91;digits&#91;0]]); \n  tm1637_write_byte(segments&#91;digits&#91;1]]); \n  tm1637_write_byte(segments&#91;digits&#91;2]]); \n  tm1637_write_byte(segments&#91;digits&#91;3]]); \n  tm1637_stop();\n}\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u062d\u0630\u0641 \u06a9\u062f \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0627\u0639\u0634\u0627\u0631<\/strong>: \u062f\u0631 \u062a\u0627\u0628\u0639 <code>tm1637_display<\/code>\u060c \u062e\u0637 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0646\u0645\u0627\u06cc\u0634 \u0646\u0642\u0637\u0647\u200c\u06cc \u0627\u0639\u0634\u0627\u0631 (<code>| 0x80<\/code>) \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0646\u0645\u0627\u06cc\u0634 \u0627\u0648\u0644\u06cc\u0646 \u0631\u0642\u0645 \u062d\u0630\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n\n\n\n<li><strong>\u0646\u0645\u0627\u06cc\u0634 \u0639\u062f\u062f \u0635\u062d\u06cc\u062d<\/strong>: \u0627\u06a9\u0646\u0648\u0646 \u0645\u0642\u062f\u0627\u0631 <code>mV<\/code> \u06a9\u0647 \u06cc\u06a9 \u0639\u062f\u062f \u0635\u062d\u06cc\u062d \u0627\u0633\u062a\u060c \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0647 \u062a\u0627\u0628\u0639 <code>tm1637_display<\/code> \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0646\u0645\u0627\u06cc\u0634\u06af\u0631 <strong>TM1637<\/strong> \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0686\u0647\u0627\u0631 \u0631\u0642\u0645\u06cc \u0648 \u0628\u062f\u0648\u0646 \u0627\u0639\u0634\u0627\u0631 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644\u060c \u0627\u06af\u0631 \u0648\u0644\u062a\u0627\u0698 \u0627\u0646\u062f\u0627\u0632\u0647\u200c\u06af\u06cc\u0631\u06cc \u0634\u062f\u0647 <strong>1.234 \u0648\u0644\u062a<\/strong> \u0628\u0627\u0634\u062f\u060c \u0645\u0642\u062f\u0627\u0631 <code>mV<\/code> \u0628\u0647 \u0635\u0648\u0631\u062a <strong>1234<\/strong> \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u06cc\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647\u200c\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0686\u0627\u0644\u0634\u200c\u0628\u0631\u0627\u0646\u06af\u06cc\u0632 \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u0645\u06cc\u06a9\u0631\u0648\u06a9\u0646\u062a\u0631\u0644\u0631 ATTiny45 \u062d\u0627\u0641\u0638\u0647 \u0648 \u0645\u0646\u0627\u0628\u0639 \u0628\u0633\u06cc\u0627\u0631 \u0645\u062d\u062f\u0648\u062f\u06cc \u062f\u0627\u0631\u062f \u0648 \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u0647\u0631 \u062f\u0648 \u0645\u0627\u0698\u0648\u0644 ADS1110 \u0648 TM1637 \u0628\u0627\u06cc\u062f \u067e\u0631\u0648\u062a\u06a9\u0644\u200c\u0647\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637\u06cc \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u06a9\u062f \u0628\u0647\u06cc\u0646\u0647 \u0648 \u06a9\u0627\u0645\u0644 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u0648\u0638\u06cc\u0641\u0647 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f. &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[44,272,62,273,274,275],"class_list":["post-918","post","type-post","status-publish","format-standard","","category-13","tag-ads1110","tag-attiny45","tag-tm1637","tag-273","tag-274","tag---16-"],"_links":{"self":[{"href":"https:\/\/ilk.ir\/sahifa\/wp-json\/wp\/v2\/posts\/918","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ilk.ir\/sahifa\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ilk.ir\/sahifa\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ilk.ir\/sahifa\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ilk.ir\/sahifa\/wp-json\/wp\/v2\/comments?post=918"}],"version-history":[{"count":1,"href":"https:\/\/ilk.ir\/sahifa\/wp-json\/wp\/v2\/posts\/918\/revisions"}],"predecessor-version":[{"id":919,"href":"https:\/\/ilk.ir\/sahifa\/wp-json\/wp\/v2\/posts\/918\/revisions\/919"}],"wp:attachment":[{"href":"https:\/\/ilk.ir\/sahifa\/wp-json\/wp\/v2\/media?parent=918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ilk.ir\/sahifa\/wp-json\/wp\/v2\/categories?post=918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ilk.ir\/sahifa\/wp-json\/wp\/v2\/tags?post=918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}