<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=24632&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2024-05-07T17:57:37+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=24632&amp;mode</id>
<entry>
<author><name><![CDATA[gordon10]]></name></author>
<updated>2024-05-07T17:57:37+01:00</updated>
<published>2024-05-07T17:57:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24632&amp;p=238071#p238071</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24632&amp;p=238071#p238071"/>
<title type="html"><![CDATA[Re: Jak zmierzyć zasilanie bateryjne attiny85]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24632&amp;p=238071#p238071"><![CDATA[
Jeśli chodzi Ci o pomiar napięcia zasilania za pomocą ADC wbudowanego w procek, to szukaj informacji na temat BandGap w dokumentacji.<br />Ja kiedyś zrobiłem taką prostą funkcję chyba na Atmega32 - wklejam poniżej. Jak się wgryziesz to bez problemu przeportujesz na innego procka.<br /><br />[syntax=c]// funkcja zwraca napiecie Vcc w postaci dziesiatych czesci volta<br />uint8_t checkVccVoltage (void)<br />{<br /><br />ADMUX |= (1&lt;&lt;REFS0) | (1&lt;&lt;MUX4) | (1&lt;&lt;MUX3) | (1&lt;&lt;MUX2) | (1&lt;&lt;MUX1);// wybor Vref -&gt; Vcc; Vin -&gt; Vbg<br />//_delay_us(250);// opoznienie opcjonalne<br />ADCSRA |= (1&lt;&lt;ADEN) | (1&lt;&lt;ADPS2) | (1&lt;&lt;ADPS0);// ADC on | wybor preskalera 32<br />//_delay_ms(1);// opoznienie opcjonalne dla ustalenia stanow<br /><br />ADCSRA |= (1&lt;&lt;ADSC);// start pomiaru<br />while( ADCSRA &amp; (1&lt;&lt;ADSC));// oczekiwanie na koniec pomiaru<br /><br />uint16_t adc;// przechowuje wskazanie z ADC<br />adc = ADCW;<br /><br />uint8_t vbat;// przechowuje zmierzone napiecie na baterii<br />// obliczanie napiecia ze wzoruVcc = (Vbg * 1024) / ADC i sprowadzenie do 8bit<br />vbat = (uint8_t)  ( ( ( VBG * 1024UL) / adc ) / DZIELNIK );// wzor z artykulu<br /><br />ADCSRA &amp;= ~(1&lt;&lt;ADEN);  // ADC off (dla oszczednosci energii)<br /><br />return (vbat);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=968">gordon10</a> — 7 maja 2024, o 17:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Draxter32]]></name></author>
<updated>2024-03-27T13:39:35+01:00</updated>
<published>2024-03-27T13:39:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24632&amp;p=237995#p237995</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24632&amp;p=237995#p237995"/>
<title type="html"><![CDATA[Re: Jak zmierzyć zasilanie bateryjne attiny85]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24632&amp;p=237995#p237995"><![CDATA[
Co chcesz dokładnie mierzyć? Jaką wielkość? Jak wygląda Twój układ pomiarowy?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8185">Draxter32</a> — 27 mar 2024, o 13:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek801027]]></name></author>
<updated>2024-03-24T16:14:43+01:00</updated>
<published>2024-03-24T16:14:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24632&amp;p=237994#p237994</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24632&amp;p=237994#p237994"/>
<title type="html"><![CDATA[Jak zmierzyć zasilanie bateryjne attiny85]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24632&amp;p=237994#p237994"><![CDATA[
Dzień dobry.<br />Wypróbowałem już chyba wszystkie sposoby by zmierzyć zasilanie bateryjne którym jest zasilany scalak ATTINY45v.<br />Jak ktoś wie proszę o pomoc.<br />[syntax=c]long pomiar(void) {<br /><br />  // Read 1.1V reference against AVcc<br />  // set the reference to Vcc and the measurement to the internal 1.1V reference<br />//  #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)<br />//    ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);<br />//  #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)<br />//    ADMUX = _BV(MUX5) | _BV(MUX0);<br />//  #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)<br />    ADMUX |= (1&lt;&lt;REFS1) | (1&lt;&lt;REFS0);<br />    ADMUX |= _BV(MUX3) | _BV(MUX2); <br />//  #else                                          <br />//    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);<br />//  #endif<br />//ADMUX = _BV(REFS1); <br />//  ADMUX |= _BV( ADLAR );        <br />  _delay_ms(2);; // Wait for Vref to settle  :<br />  ADCSRA |= _BV( ADPS1 );<br />  <br />  ADCSRA |= _BV(ADEN);<br />  <br />  ADCSRA |= _BV(ADSC); // Start conversion<br />  while (ADCSRA &amp; (1&lt;&lt;ADSC)); // measuring<br />  <br />  uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH  <br />  uint8_t high = ADCH; // unlocks both  <br />//  uint16_t result = ADCW; <br /> long result = (high&lt;&lt;8) | low;                       <br />                                          <br />//  result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000  <br />  return result; // Vcc in millivolts<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18506">Piotrek801027</a> — 24 mar 2024, o 16:14</p><hr />
]]></content>
</entry>
</feed>