<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem mikrokontrolery</title>
<link>https://forum.pasja-informatyki.pl/tag/mikrokontrolery</link>
<description>Powered by Question2Answer</description>
<item>
<title>CircuitPython</title>
<link>https://forum.pasja-informatyki.pl/587498/circuitpython</link>
<description>

&lt;p&gt;Witam,&lt;/p&gt;



&lt;p&gt;chciałbym żeby lampka zapalała się gdy naciśnięty przycisk. Lecz niestety nie działa to, lampka cały czas jest zgaszona.&lt;/p&gt;



&lt;p&gt;Płytka: Seeduino xiao samd21 circuit python 8&lt;/p&gt;



&lt;p&gt;lampka: zwykła dioda z rezystorem 100om&lt;/p&gt;



&lt;p&gt;przycisk: zwykły tact switch&lt;/p&gt;



&lt;p&gt;Jest w stanie mi ktoś z tym pomóc?&lt;/p&gt;



&lt;pre class=&quot;brush:python;&quot;&gt;
import time
import board
from digitalio import DigitalInOut, Direction, Pull
 
led = DigitalInOut(board.D7)
led.direction = Direction.OUTPUT
 
 
btn = DigitalInOut(board.D6)
btn.direction = Direction.INPUT
btn.pull = Pull.UP
 
while True:
    if not btn.value:
        print(&quot;BTN is down&quot;)
        led.value = False
    else:
        #print(&quot;BTN is up&quot;)
        pass
        led.value = True
 
     time.sleep(0.1) # sleep for debounce&lt;/pre&gt;



&lt;p&gt;Z góry dziękuję za wszystkie odpowiedzi&lt;/p&gt;</description>
<category>Mikrokontrolery</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/587498/circuitpython</guid>
<pubDate>Wed, 23 Aug 2023 12:46:03 +0000</pubDate>
</item>
<item>
<title>regulator MPPT</title>
<link>https://forum.pasja-informatyki.pl/569859/regulator-mppt</link>
<description>

&lt;p&gt;Witam. Zbudowałem regulator mppt według tego projektu tylko że na atmedze328 &lt;a href=&quot;https://www.youtube.com/watch?v=qVfIR20kqQ0&quot; rel=&quot;nofollow&quot;&gt;https://www.youtube.com/watch?v=qVfIR20kqQ0&lt;/a&gt;. W kodzie było kilka błędów, poprawiłem je ale coś jest jeszcze nie tak, bo po wgraniu na wyświetlaczu nic się nie wyświetla i cały czas świeci się czerwona dioda.&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;



#include &amp;lt;LiquidCrystal.h&amp;gt; 
#include &amp;lt;EEPROM.h&amp;gt;
LiquidCrystal lcd(7,8,0,1,2,3);



#define SOL_VOLTS_CHAN A0 
#define SOL_AMPS_CHAN A3 
#define BAT_VOLTS_CHAN A2 
#define FAN_PIN A1 
#define AVG_NUM 10 
#define SOL_AMPS_SCALE 37 
#define SOL_VOLTS_SCALE 28 
#define BAT_VOLTS_SCALE 28 
#define PWM_PIN 9 
#define PWM_FULL 1023 
#define PWM_MAX 100 
#define PWM_MIN 60 
#define PWM_START 90 
#define PWM_INC 1 
#define TRUE 1
#define FALSE 0
#define ON TRUE
#define OFF FALSE
#define ONE_SECOND 50000 
#define LOW_SOL_WATTS 5.00 
#define MIN_SOL_WATTS 1.00 
#define MIN_BAT_VOLTS 11.00 
#define MAX_BAT_VOLTS 14.10 
#define HIGH_BAT_VOLTS 13.60 
#define OFF_NUM 9 
#define yellowLed 10
#define greenLed 11
#define redLed 12
byte solar[8] = 
{
0b11111,
0b10101,
0b11111,

0b10101,
0b11111,
0b10101,
0b11111,
0b00000
};

byte battery[8]=
{
0b01110,
0b11011,
0b10001,
0b10001,
0b11111,
0b11111,
0b11111,
0b11111,
};




float pwm = 0; 
float sol_amps; 
float sol_volts; 
float bat_volts; 
float sol_watts; 
int delta = PWM_INC; 
float old_sol_watts = 0; 

float watts, wattHours;
int disp_page=1; 
unsigned long prev_millis, pwm_disp_millis;
double msec, last_msec, elasped_msec, elasped_time, ampSecs, wattSecs;
enum charger_mode {
off, on, bulk, bat_float }
charger_state; 


void setup() 
{

TCCR1B = TCCR1B &amp;amp; B11111000 | B00000001; 
wattHours = 1000;
analogWrite(PWM_PIN,0); 
pwm = PWM_START; 
charger_state = on; 
pinMode(yellowLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(redLed, OUTPUT);
pinMode(FAN_PIN,OUTPUT);
digitalWrite(yellowLed,LOW);
digitalWrite(greenLed,LOW);
digitalWrite(redLed,LOW);

digitalWrite(FAN_PIN,HIGH);
lcd.begin(16, 2); 
lcd.createChar(1,solar);
lcd.createChar(2,battery);
}


int read_adc(int channel){

int sum = 0;
int temp;
int i;

for (i=0; i&amp;lt;AVG_NUM; i++) { 
temp = analogRead(channel); 
sum += temp; 
delayMicroseconds(50); 
}
return(sum / AVG_NUM); 
}


void set_pwm_duty(void) {

if (pwm &amp;gt; PWM_MAX) { 

pwm = PWM_MAX;
}
else if (pwm &amp;lt; PWM_MIN) { 
pwm = PWM_MIN;
}
if (pwm &amp;lt; PWM_MAX) {
analogWrite(PWM_PIN,(PWM_FULL * (long)pwm / 100)); 
//period

}
else if (pwm == PWM_MAX) { 
analogWrite(PWM_PIN,(PWM_FULL - 1)); 
//1000uS period

}
}


void lcd_display1(void) {

lcd.clear();
lcd.setCursor(0, 0);

lcd.write(1);
//lcd.print(&quot; &quot;);
lcd.print(sol_volts,1);
lcd.print(&quot;V &quot;);
if ((sol_amps*sol_volts) &amp;lt; 10.0 &amp;amp;&amp;amp; (sol_amps*sol_volts) &amp;gt; 0.0) {
lcd.print(&quot;0&quot;);
lcd.print(sol_amps*sol_volts,0);
}
else if ((sol_amps*sol_volts) &amp;gt;= 10.0) {
lcd.print(sol_amps*sol_volts,0);
}
else {
lcd.print(&quot;00&quot;);
}
lcd.print(&quot;W &quot;);

if ((sol_amps) &amp;lt; 10.0 &amp;amp;&amp;amp; sol_amps &amp;gt;0) {
lcd.print(&quot;0&quot;);
lcd.print(sol_amps,1);
}
else if (sol_amps &amp;gt;= 10){
lcd.print(sol_amps,1);
}
else {
lcd.print(&quot;00.0&quot;);
}
lcd.print(&quot;A&quot;);

//lcd.print(sol_amps,1);

//lcd.print(&quot;A&quot;);

lcd.setCursor(0, 1);
lcd.write(2);
//lcd.print(&quot; &quot;);
lcd.print(bat_volts,1);
lcd.print(&quot;V &quot;);
if ((sol_amps*bat_volts) &amp;lt; 10.0 &amp;amp;&amp;amp; (sol_amps*bat_volts) &amp;gt; 0.0) {
lcd.print(&quot;0&quot;);
lcd.print(sol_amps*bat_volts,0);
}
else if ((sol_amps*bat_volts) &amp;gt;= 10.0) {
lcd.print(sol_amps*bat_volts,0);
}
else {
lcd.print(&quot;00&quot;);
}
lcd.print(&quot;W &quot;);

if (disp_page==1){
lcd.print(wattHours,0);
lcd.setCursor(15,1);
lcd.print(&quot;h&quot;);

}
if(disp_page==2) {
lcd.print(pwm,0);
lcd.setCursor(15,1);
lcd.print(&quot;%&quot;);

}
}


void read_data(void) {
//sol_volts = read_adc(SOL_VOLTS_CHAN)*0.0282; 
//bat_volts = read_adc(BAT_VOLTS_CHAN)*0.0276; 
sol_volts = read_adc(SOL_VOLTS_CHAN)*0.02705;
bat_volts = read_adc(BAT_VOLTS_CHAN)*0.02613;

sol_amps = (read_adc(SOL_AMPS_CHAN));
sol_amps = (sol_amps/1023.0)*5000;
sol_amps = 0.9*((sol_amps-2500)/66); 
sol_amps = sol_amps-1.2; 
sol_watts = sol_volts*sol_amps;

}

void power(void)

{

msec = millis();
elasped_msec = msec - last_msec; 
elasped_time = elasped_msec / 1000.0; 
watts = bat_volts*sol_amps; 
ampSecs = (sol_amps*elasped_time); 
wattSecs = ampSecs * sol_volts; 
wattHours = wattHours + wattSecs/3600; 
last_msec = msec; 

}


void ledIndication(void) {

if (charger_state == off){
digitalWrite(greenLed,LOW);
digitalWrite(yellowLed,LOW);
digitalWrite(redLed,HIGH);
}
else if ((charger_state == bulk) || (charger_state == on)) {
digitalWrite(greenLed,LOW);
digitalWrite(yellowLed,HIGH);
digitalWrite(redLed,LOW);
}
else if (charger_state == bat_float) {
digitalWrite(greenLed,HIGH);

digitalWrite(yellowLed,LOW);
digitalWrite(redLed,LOW);
}
}


void run_charger(void) {

static int off_count = OFF_NUM;

switch (charger_state) {
case on:
if (sol_watts &amp;lt; MIN_SOL_WATTS) { 
charger_state = off; 
off_count = OFF_NUM; 
analogWrite(PWM_PIN,0);
}
else if (bat_volts &amp;gt; MAX_BAT_VOLTS) { 
charger_state = bat_float; 
}
else if (sol_watts &amp;lt; LOW_SOL_WATTS) { 
pwm = PWM_MAX; 
set_pwm_duty(); 
//as possible
} //and stay in the charger on state
else {
pwm = ((bat_volts * 10) / (sol_volts / 10)) + 5; 
//out what the pwm
charger_state = bulk; 
}
break;
case bulk:
if (sol_watts &amp;lt; MIN_SOL_WATTS) { 
charger_state = off; 

off_count = OFF_NUM; 

}
else if (bat_volts &amp;gt; MAX_BAT_VOLTS) { 
charger_state = bat_float; 
}
else if (sol_watts &amp;lt; LOW_SOL_WATTS) { 
charger_state = on; 
}
else { 
if (old_sol_watts &amp;gt;= sol_watts) { 
delta = -delta; 
}
pwm += delta; 
old_sol_watts = sol_watts; 
set_pwm_duty(); 
}
break;
case bat_float:
if (sol_watts &amp;lt; MIN_SOL_WATTS) { 
charger_state = off; 
off_count = OFF_NUM; 
set_pwm_duty();
analogWrite(PWM_PIN,0);
}
else if (bat_volts &amp;gt; MAX_BAT_VOLTS) { 
pwm -= 1; 
set_pwm_duty();

}
else if (bat_volts &amp;lt; MAX_BAT_VOLTS) { 
pwm += 1; 
set_pwm_duty();

if (pwm &amp;gt;= 100) { 
charger_state = bulk; 
}
}
break;
case off: 
if (off_count &amp;gt; 0) { 
off_count--; 
} 
else if ((bat_volts &amp;gt; HIGH_BAT_VOLTS) &amp;amp;&amp;amp; (bat_volts &amp;lt; MAX_BAT_VOLTS) &amp;amp;&amp;amp; (sol_volts &amp;gt; bat_volts)) {
charger_state = bat_float; //if battery voltage is still high and solar volts are high
set_pwm_duty(); 

}
else if ((bat_volts &amp;gt; MIN_BAT_VOLTS) &amp;amp;&amp;amp; (bat_volts &amp;lt; MAX_BAT_VOLTS) &amp;amp;&amp;amp; (sol_volts &amp;gt; bat_volts)) {
pwm = PWM_START; 
set_pwm_duty(); 
charger_state = on; 

} 
break;
default:
analogWrite(PWM_PIN,0);
break;
}

}

void loop() 
{
read_data(); 
power();
run_charger(); 
// delay(50);
// read_data();

if ((millis() &amp;gt; (prev_millis+ 1500))) { 
prev_millis = millis();
ledIndication();
lcd_display1();
if (sol_amps &amp;gt; 2) {
digitalWrite(FAN_PIN,HIGH);
}
else{
digitalWrite(FAN_PIN,LOW);
}
if (disp_page==1) disp_page=2;
else disp_page=1;
}
}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/569859/regulator-mppt</guid>
<pubDate>Fri, 22 Jul 2022 17:13:47 +0000</pubDate>
</item>
<item>
<title>Jakie IDE dla STM32?</title>
<link>https://forum.pasja-informatyki.pl/515712/jakie-ide-dla-stm32</link>
<description>Cześć ,&lt;br /&gt;
&lt;br /&gt;
Robię od nieco dłuższego czasu z mikrokontrolerami STM32 i do tej pory robiłem w Atollic true studio , ale z pewnych względów mam tego środowiska dość. &lt;br /&gt;
&lt;br /&gt;
Czy ktoś z was może poleca konkretny setup swojego IDE?&lt;br /&gt;
&lt;br /&gt;
A może ktoś z was stawiał IDE z godnego polecania poradnika?&lt;br /&gt;
&lt;br /&gt;
Będę wdzięczny za wasze odpowiedzi , jestem ciekaw waszego doświadczenia.</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/515712/jakie-ide-dla-stm32</guid>
<pubDate>Mon, 09 Nov 2020 08:42:58 +0000</pubDate>
</item>
<item>
<title>C++ mikrokontrolery</title>
<link>https://forum.pasja-informatyki.pl/495204/c-mikrokontrolery</link>
<description>Witajcie! Mam pytanie mianowicie potrzebuje taniego mikrokontrolera z ali nawet żeby się pobawić i czegoś nauczyc co polecacie?(cpp)</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/495204/c-mikrokontrolery</guid>
<pubDate>Sat, 20 Jun 2020 23:39:09 +0000</pubDate>
</item>
<item>
<title>Fritzing - schematy</title>
<link>https://forum.pasja-informatyki.pl/475176/fritzing-schematy</link>
<description>Cześć, poznaje nowy program do tworzenia wszelakich schematów dot. Arduino.&lt;br /&gt;
&lt;br /&gt;
Trochę poczytałem, trochę poklikałem, ale nie do końca rozumiem jakie są różnice pomiędzy schematami z zakładki BREADBOARD, SCHEMATIC, oraz PCB.&lt;br /&gt;
&lt;br /&gt;
Czy ktoś zna się na tym programie i mógłby opowiedzieć co nieco o tych rodzajach schematów ? Nie mogę natknąć się w Internecie na konkretne informacje na ten temat.</description>
<category>Systemy operacyjne, programy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/475176/fritzing-schematy</guid>
<pubDate>Tue, 10 Mar 2020 19:35:59 +0000</pubDate>
</item>
<item>
<title>Kurs podstaw elektroniki pod schematy i mikrokontrolery</title>
<link>https://forum.pasja-informatyki.pl/346527/kurs-podstaw-elektroniki-pod-schematy-i-mikrokontrolery</link>
<description>

&lt;p&gt;Siema czy znacie może dobry kurs podstaw elektroniki, który wprowadziłby w świat elektroniki?&lt;/p&gt;



&lt;p&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Moja wiedza&amp;nbsp;jest zerowa (NULL :D)&lt;/span&gt; i chciałbym nabyć&amp;nbsp;potrzebną&amp;nbsp;wiedzy pod kątem czytania i projektowania schematów w programie Eagle oraz tworzenia układów z mikrokontrolerami.&lt;/p&gt;



&lt;p&gt;Nie chciałbym wchodzić zbytnio w szczegóły na poziomie fizyki (np. jak zbudowane są rezystory, elektrony czy zaawansowane twierdzenia matematyczno-elektroniczne :D) tylko szukam czegoś co pozwoli&lt;span style=&quot;text-decoration: underline;&quot;&gt; na sprawne rozumie schematów oraz projektowanie urządzeń elektronicznych z mikrokontrolerami.&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;W skrócie chciałbym rozumieć co dzieje się na takich schematach :D (losowy obrazek z google).&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;schemat&quot; src=&quot;http://www.fuw.edu.pl/~pablo/programowanie_mikrokontrolerow/projekty/2005_2006/www.fuw.edu.pl/msok/spuk/freq_counter_image.png&quot; style=&quot;height:544px; width:1014px&quot;&gt;&lt;/p&gt;</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/346527/kurs-podstaw-elektroniki-pod-schematy-i-mikrokontrolery</guid>
<pubDate>Fri, 27 Apr 2018 08:43:57 +0000</pubDate>
</item>
<item>
<title>Kariera w systemach embedded</title>
<link>https://forum.pasja-informatyki.pl/234079/kariera-w-systemach-embedded</link>
<description>Witam. Od jakiegoś czasu uczę się c++. Ostatnio trochę zaglebilem się też w sfml i napisałem prosta grę Snake. &amp;nbsp;Zanim jeszcze natchnalem się na programowanie bawiłem się trochę z elektronika analogowa i cyfrowa. &amp;nbsp;Oraz trochę &amp;nbsp;z mikroprockami atmega (i wtedy też zacząłem trochę programować). &amp;nbsp;Juz pewnie z dwa lata nie miałem żadnego kontaktu z elektronika ani mikroprockami. &amp;nbsp;Pomimo tego że czyste programowanie sprawia mi frajdę czuje ze chciałbym robić coś więcej niż tylko siedzieć przed kompem i pisać kod. &amp;nbsp;Jestem na studiach informatycznych 1 rok. &amp;nbsp;I teraz czuję jak ten zapał do czystego programowania jakoś słabnie. &amp;nbsp;Chciałbym też widzieć efekty swojej pracy nie tylko w postaci programów ale czegoś namacalnego np robota. &amp;nbsp;Nawet prostego kalkulatora na wyświetlaczu Led. Mam pytanie do was czy systemy embedded to w dużym uproszczeniu programowanie mikroprocesorow bo nie jestem do końca pewny.? Oraz czy warto się w to pchać tak na poważnie zważywszy że mam już swój wiek, czy lepiej pozostać przy czystym programowaniu a mikrokontrolery traktować jako hobby? &amp;nbsp;I jak z praca dla programistów embedded czy ciężko ją dostać? &amp;nbsp;I to juz wszystko pozdrawiam. &amp;nbsp;Proszę o odpowiedź. &amp;nbsp;Rafal</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/234079/kariera-w-systemach-embedded</guid>
<pubDate>Thu, 09 Mar 2017 21:45:43 +0000</pubDate>
</item>
</channel>
</rss>