Zasilacz warsztatowy 0-35V 0-4A #01

Dział Do it yourself - Zrób to sam - prezentacja urządzeń wszelkiego rodzaju wykonanych we własnym zakresie
Awatar użytkownika
Sławek
Site Admin
Posty: 14530
Rejestracja: 21 gru 2011, 22:12
Has thanked: 15 times
Been thanked: 21 times

Re: Zasilacz warsztatowy 0-35V 0-4A #01

Post autor: Sławek »

Tak, oczywiscie udostepnie :)

Awatar użytkownika
SaintRafik
Kierowca
Posty: 3
Rejestracja: 03 wrz 2017, 13:31

Re: Zasilacz warsztatowy 0-35V 0-4A #01

Post autor: SaintRafik »

Gdzie jeśli można, zapytać

Wysłane z mojego ONEPLUS A3000 przy użyciu Tapatalka

Awatar użytkownika
Drabek
Kierowca
Posty: 9097
Rejestracja: 09 sie 2012, 20:35
Has thanked: 3 times
Been thanked: 17 times

Re: Zasilacz warsztatowy 0-35V 0-4A #01

Post autor: Drabek »

Tylko po to się tu rejestrowałeś :pala

Awatar użytkownika
Sławek
Site Admin
Posty: 14530
Rejestracja: 21 gru 2011, 22:12
Has thanked: 15 times
Been thanked: 21 times

Re: Zasilacz warsztatowy 0-35V 0-4A #01

Post autor: Sławek »

Drabek pisze:Tylko po to się tu rejestrowałeś :pala
Drabku, te tematy tu będą i proszę o akceptację tegoż :) można ich nie czytać :)
SaintRafik pisze:Gdzie jeśli można, zapytać

Wysłane z mojego ONEPLUS A3000 przy użyciu Tapatalka
O co pytasz ?

Pozdr

Awatar użytkownika
SaintRafik
Kierowca
Posty: 3
Rejestracja: 03 wrz 2017, 13:31

Re: Zasilacz warsztatowy 0-35V 0-4A #01

Post autor: SaintRafik »

Sławek pisze:Tak, oczywiscie udostepnie :)
O to pytam

Wysłane z mojego ONEPLUS A3000 przy użyciu Tapatalka

Awatar użytkownika
Drabek
Kierowca
Posty: 9097
Rejestracja: 09 sie 2012, 20:35
Has thanked: 3 times
Been thanked: 17 times

Re: Zasilacz warsztatowy 0-35V 0-4A #01

Post autor: Drabek »

Sławek pisze:
Drabek pisze:Tylko po to się tu rejestrowałeś :pala
Drabku, te tematy tu będą i proszę o akceptację tegoż :) można ich nie czytać :)
SaintRafik pisze:Gdzie jeśli można, zapytać

Wysłane z mojego ONEPLUS A3000 przy użyciu Tapatalka
O co pytasz ?

Pozdr
Myślałem że te wszystkie tematy przeniosłeś. :brawa

Awatar użytkownika
Sławek
Site Admin
Posty: 14530
Rejestracja: 21 gru 2011, 22:12
Has thanked: 15 times
Been thanked: 21 times

Re: Zasilacz warsztatowy 0-35V 0-4A #01

Post autor: Sławek »

SaintRafik pisze:
Sławek pisze:Tak, oczywiscie udostepnie :)
O to pytam

Wysłane z mojego ONEPLUS A3000 przy użyciu Tapatalka
Nie wiem co jeszcze potrzebujesz, jest w pierwszym poście schemat, jest wzór płytki, coś jeszcze ?

Pozdr

Awatar użytkownika
SaintRafik
Kierowca
Posty: 3
Rejestracja: 03 wrz 2017, 13:31

Re: Zasilacz warsztatowy 0-35V 0-4A #01

Post autor: SaintRafik »

W głównej mierze chodzi o soft o który dopytywali koledzy z poprzedniej strony.

Wysłane z mojego ONEPLUS A3000 przy użyciu Tapatalka

Awatar użytkownika
Sławek
Site Admin
Posty: 14530
Rejestracja: 21 gru 2011, 22:12
Has thanked: 15 times
Been thanked: 21 times

Re: Zasilacz warsztatowy 0-35V 0-4A #01

Post autor: Sławek »

Proszę bardzo :)
#include "Arduino.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define tempPin 2
#define pinNapiecie A0
#define pinPrad A1
#define pinNastawa A2

byte address[8] = {0x28, 0xA4, 0x22, 0xC0, 0x04, 0x00, 0x00, 0x42};
OneWire oneWire(tempPin);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

String wersja="3.1";

float mnoznik = 7.85; // wyliczone na podstawie dzielnika z rezystorów 10k i 1.5k

int czulosc = 10; // ilosc probek - i mwieksza tym wieksza bezwłądnosc wyliczanej sredniej odczytu
float prad = 0.0;
float probka = 0;
long czas = 0;
int licznik = 0;

long prad_odczyt = 0;
long napiecie_odczyt = 0;
long nastawa_prad_odczyt = 0;

long prad_probka = 0;
long napiecie_probka = 0;
long nastawa_prad_probka = 0;

float prad_sredni = 0.0;
float napiecie_srednie = 0.0;
float nastawa_prad_sredni = 0.0;

float napiecie = 0.0;
float spadek = 0.0;
float moc = 0.0;
float nastawa = 0.0;
float rezystancja = 0.0;

String lcd_napiecie = " 0.00";
String lcd_prad = " 0.00";
String lcd_moc = " 0.00";
String lcd_nastawa = " 0.00";
String lcd_rezystancja = " 0.00";

float temperatura = 0;
int temp_on = 30;
String wentylator = " ";
#define wentylatorPin 3
#define PRZERWATEMP 5000 // czestotliwosc odczytu DS18B20 w ms
unsigned long aktualnyDS18B20 = 0; // zmienna czasu
unsigned long poprzedniDS18B20 = 0; // zmienna czasu




byte ohm[8] = {
0b01110,
0b10001,
0b10001,
0b10001,
0b01010,
0b01010,
0b11011,
0b00000
};

byte stopien[8] = {
0b00011,
0b00011,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000
};

byte temp[8] =
{
        0b00100,
        0b01010,
        0b01010,
        0b01110,
        0b01110,
        0b11111,
        0b11111,
        0b01110
};

byte limit[8] = {
0b00000,
0b01110,
0b11001,
0b10101,
0b10001,
0b01110,
0b00000,
0b00000
};


byte went[8] = {
0b00100,
0b10101,
0b01110,
0b11011,
0b01110,
0b10101,
0b00100,
0b00000
};



void setup(){

    
    lcd.begin(20,4);
    lcd.clear();
    Serial.begin(9600);
    sensors.begin();
    lcd.createChar(0, ohm);
    lcd.createChar(1, stopien);
    lcd.createChar(2, temp);
    lcd.createChar(3, limit);
    lcd.createChar(4, went);
    
    lcd.setCursor(0,0);
    lcd.print("Zasilacz warsztatowy");
    lcd.setCursor(0,1);
    lcd.print(" DC 0-35V / 0-4A");
    lcd.setCursor(0,3);
    lcd.print(" RCTRUCK.PL ");
    delay(2000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(" by Slawek ");
    lcd.setCursor(0,2);
    lcd.print(" unix@rctruck.pl ");
    lcd.setCursor(0,3);
    lcd.print("");
    delay(1000);
    lcd.clear();

}






void loop(){
 
  napiecie_odczyt = analogRead(pinNapiecie);
  napiecie_probka = napiecie_probka + napiecie_odczyt; 

  prad_odczyt = analogRead(pinPrad);
  prad_probka = prad_probka + prad_odczyt; 
  
  nastawa_prad_odczyt = analogRead(pinNastawa);
  nastawa_prad_probka = nastawa_prad_probka + nastawa_prad_odczyt; 

  licznik++;
            
     if(licznik == czulosc ) {
        napiecie_srednie = (napiecie_probka / czulosc) * 5020 / 1021 ;
        nastawa_prad_sredni = (nastawa_prad_probka / czulosc) * 5020 / 1021;
        spadek = (prad_probka / czulosc) * 5000 / 1021;

        napiecie_srednie -= spadek;
        napiecie_srednie = napiecie_srednie * mnoznik;
        
        nastawa = nastawa_prad_sredni / 1000;
        
        napiecie = napiecie_srednie / 1000;
        prad = (spadek * 100) / 47 / 1000;
        moc = prad  * napiecie;
        
        if(prad > 0) {
          rezystancja = round((napiecie / prad) * 10) / 10.0;
        } else {
          rezystancja = 0.00;
        }
        
        napiecie = round(napiecie * 10) / 10.0;
        prad = round(prad * 10) / 10.0;
        moc = round(moc * 10) / 10.0;
        nastawa = round(nastawa * 21) / 10.0;
        napiecie_probka = 0;
        prad_probka = 0;
        nastawa_prad_probka = 0;
        licznik = 0;
     }


   
  napiecie_lcd(); 
  prad_lcd();
  moc_lcd();
  nastawa_lcd();
  rezystancja_lcd();
  

  lcd.setCursor(0,0);
  lcd.write((uint8_t)2);
  lcd.print(temperatura);
  lcd.write((uint8_t)1);
  lcd.print("C");
  
  lcd.setCursor(12,0);
  lcd.write((uint8_t)4);
  if(digitalRead(wentylatorPin) == HIGH)
  lcd.print(" ON");
  else lcd.print("OFF");
  
  
  lcd.setCursor(5,1);
  lcd.print("[");
  lcd.print(lcd_napiecie);
  lcd.print(" V]");
  
  lcd.setCursor(0,2);
  lcd.print("[");
  lcd.print(lcd_moc);
  lcd.print(" W]");

  lcd.setCursor(11,2);
  lcd.print("[");
  lcd.print(lcd_prad);
  lcd.print(" A]");
  
 
  lcd.setCursor(0,3);
  lcd.print("[");
  lcd.print(lcd_rezystancja);
  lcd.print(" ");
  lcd.write((uint8_t)0);
  lcd.print("]");

  lcd.setCursor(10,3);
  lcd.write((uint8_t)3);
  lcd.print("[");
  lcd.print(lcd_nastawa);
  lcd.print(" A]");


//delay(1);

}



void napiecie_lcd() {
  
      lcd_napiecie = String(napiecie);
       int dlugosc = lcd_napiecie.length();
          if (dlugosc == 4) {
            lcd_napiecie = " " + lcd_napiecie;
          } else if (dlugosc == 5)
            {
              lcd_napiecie = "" + lcd_napiecie;
            } 
            


         
void prad_lcd() {
  
      lcd_prad = String(prad);
       int dlugosc = lcd_prad.length();
          if (dlugosc == 4) {
            lcd_prad = " " + lcd_prad;
          } else if (dlugosc == 5)
            {
              lcd_prad = "" + lcd_prad;
            } 
            

  
  
void moc_lcd() {
  
      lcd_moc = String(moc);
       int dlugosc = lcd_moc.length();
          if (dlugosc == 4) {
            lcd_moc = " " + lcd_moc;
          } else if (dlugosc == 5)
            {
              lcd_moc = "" + lcd_moc;
            } 
            
}   
  

void nastawa_lcd() {
  
      lcd_nastawa = String(nastawa);
       int dlugosc = lcd_nastawa.length();
          if (dlugosc == 4) {
            lcd_nastawa = " " + lcd_nastawa;
          } else if (dlugosc == 5)
            {
              lcd_nastawa = "" + lcd_nastawa;
            } 
            



void rezystancja_lcd() {
  
      lcd_rezystancja = String(rezystancja);
       int dlugosc = lcd_rezystancja.length();
          if (dlugosc == 4) {
            lcd_rezystancja = " " + lcd_rezystancja;
          } else if (dlugosc == 5)
            {
              lcd_rezystancja = "" + lcd_rezystancja;
            } 
            






void temperatura_wentyaltor()

  
   aktualnyDS18B20 = millis();
if (aktualnyDS18B20 - poprzedniDS18B20 >= PRZERWATEMP)
{
sensors.requestTemperatures();
temperatura = sensors.getTempCByIndex(0);
poprzedniDS18B20 = aktualnyDS18B20;
}

  
  if(temperatura >= temp_on) {
    digitalWrite(wentylatorPin, HIGH);
 
  } 
  
  if(temperatura <= (temp_on -1)) {
    digitalWrite(wentylatorPin, LOW);

  } 
}



DamianKoni

Re: Zasilacz warsztatowy 0-35V 0-4A #01

Post autor: DamianKoni »

W ramach wakacyjnego wolnego czasu chętnie wykonam sobie taki zasilacz. I tu rodzi się prośba o udostępnienie schematu połączeń. Zależy mi na czymś takim jak zaprezentowana jest budowa stacji lutowniczej ;)

ODPOWIEDZ