<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[forum.rcl-radio.ru &mdash; LM723 + STM32 = источник питания 0...28 В 0...2,5 А]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=260</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=260&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «LM723 + STM32 = источник питания 0...28 В 0...2,5 А».]]></description>
		<lastBuildDate>Mon, 18 Jan 2021 15:20:14 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[LM723 + STM32 = источник питания 0...28 В 0...2,5 А]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=2927#p2927</link>
			<description><![CDATA[<div class="codebox"><pre><code>#define pinA PB11
#define pinB PB10
#define SW   PA7
#include &lt;STM32_TM1637.h&gt; // http://rcl-radio.ru/wp-content/uploads/2020/02/STM32_TM1637_V1_3.zip
#include &lt;STM32ADC.h&gt;
#include &lt;Wire.h&gt;
#include &lt;STM32_Encoder.h&gt; // http://rcl-radio.ru/wp-content/uploads/2020/01/STM32_Encoder.zip
#include &lt;EEPROM.h&gt;
  STM32_TM1637 tm(PB1,PB0);// CLK, DIO
  STM32_Encoder encoder(pinA, pinB);
  STM32ADC myADC(ADC1);

  const float u_k = 7.08; // калибровка регулятора напряжения
  const float u_pit = 3.30; // напряжение 3,3V на плате STM32
  int position = 0;
  uint8 pins = PA6;
  const int maxSamples = 1; 
  uint16_t dataPoints[maxSamples];
  int menu,reg_u,u_dig,reg_i,w,www;
  float u_iz;
  unsigned long times;

void setup() {
  Serial.begin(9600);Wire.begin();Wire.setClock(400000L);encoder.begin();  
  tm.brig(7); // ЯРКОСТЬ 0...7
  EEPROM.init(0x801F000,0x801F800,0x400);// 1024 byte                                                       
  attachInterrupt(digitalPinToInterrupt(pinA),Read,CHANGE);  
  attachInterrupt(digitalPinToInterrupt(pinB),Read,CHANGE); 
  pinMode(SW,INPUT); // SW 
  myADC.calibrate();
  rcc_set_prescaler(RCC_PRESCALER_ADC, RCC_ADCPRE_PCLK_DIV_8); 
  myADC.setSampleRate(ADC_SMPR_239_5);
  myADC.setScanMode();              
  myADC.setPins(&amp;pins,1);          
  myADC.setContinuous();         
  myADC.setDMA(dataPoints, 1, (DMA_MINC_MODE | DMA_CIRC_MODE), NULL);  
  myADC.startConversion();    
  reg_u = EEPROM.read(0);reg_i = EEPROM.read(1); 
}

void loop(){
    if(digitalRead(PA7)==LOW){menu++;if(menu&gt;1){menu=0;}delay(200);}
   
    u_iz = dataPoints[0]*u_pit/4095;
    MCP4725(u_dig);
    //Serial.println(u_iz);
    
    if(menu==0){tm.print_float(float(reg_u/10.00),1, 0,0,0,0);}
    if(menu==1){tm.print_float(float(reg_i/100.00),2, 0b01110111,0,0,0);}
    
 ////////// reg U //////////////////////////////////////////////////////////   
    if(menu==0){
    if(position != encoder.getPosition()){position = encoder.getPosition();
    reg_u = reg_u + encoder.getPosition();encoder.setPosition(0);position = 0;
    if(reg_u&gt;280){reg_u=280;}if(reg_u&lt;0){reg_u=0;}times=millis();w=1;
    u_dig = float(reg_u/10.00)/u_k*4095/5.00;
    Serial.println(reg_u);}}

 ////////// reg I //////////////////////////////////////////////////////////   
    if(menu==1){
    if(position != encoder.getPosition()){position = encoder.getPosition();
    reg_i = reg_i + encoder.getPosition();encoder.setPosition(0);position = 0;
    if(reg_i&gt;250){reg_i=250;}if(reg_i&lt;0){reg_i=0;}times=millis();w=1;}}
 ////////////////////////////////////////////////////////////////////////// 
   
    
 //////////////// EEPROM
  if(millis()-times&gt;5000&amp;&amp;w==1){EEPROM.update(0,reg_u);EEPROM.update(1,reg_i);menu=0;times=millis();w=0;}
  delay(100);
}

void MCP4725(int data){  
  byte buffer[3];
  buffer[0] = 0b01000000;
  // data=0;
  // buffer[0] = 0b01100000; // запись в память ЦАП 0 В 
  buffer[1] = data &gt;&gt; 4;              
  buffer[2] = data &lt;&lt; 4;
  Wire.beginTransmission(0x60);
  Wire.write(buffer[0]);
  Wire.write(buffer[1]);
  Wire.write(buffer[2]);
  Wire.endTransmission();
  }  
void Read(){encoder.readAB();}  </code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 18 Jan 2021 15:20:14 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=2927#p2927</guid>
		</item>
	</channel>
</rss>
