zlutowałem wczoraj układ. W sobotę podłączę go w alfie. Z tego co widzę może być mały problem z sygnałem z wentylatora, bo albo źle coś rozumię, albo napięcia są jakieś dziwne..
Printable View
zlutowałem wczoraj układ. W sobotę podłączę go w alfie. Z tego co widzę może być mały problem z sygnałem z wentylatora, bo albo źle coś rozumię, albo napięcia są jakieś dziwne..
zamontoałem układ, działa, więc wysyłam wam wiadomości priv z danymi do przelewu.
poniżej załączniki do eagla.
schematy (2szt) i rozmieszczenie elementów na płytce.
- - - Updated - - -
r-sokol
oczyść skrynkę priv.
Już wyczyszczona albo lepiej na r-sokol@wp.pl.
A dałoby radę schemat i płytkę na pdf-a albo krótki instruktaż skąd wziąć eagla?
google "eagle"
ściągasz, instalujesz free i otwierasz 3 pliki z folderu.
- - - Updated - - -
Załącznik 114357
Załącznik 114359
Załącznik 114362
Cześć emo94.
Ponieważ bardziej ze mnie mechanik niż elektronik, jednak trochę się bawiłem lutownicą czy da radę z Twojej strony udostępnić spis części do zakupu oraz wielkość płytki. Niestety będę wszystko zamawiał wysyłkowo i wolałbym aby wszystko doszło, a spisując ze schematu obawiam się że mogę coś pominąć.
Poza tym już widzę że będę miał troszkę pytań do schematu i wejść/wyjść z układu.
Pierwsze co to z jakiego pinu wziąłeś sterowanie pracą wentylatora w samochodzie.
Czy termistory są wpięte w układ równolegle i czy zaznaczone na schemacie Przekaźnik2SPIRALE jest to oznaczenie wyjścia - równoległe, a powyżej zaznaczenie +12V jest to zasilanie?
Wiem że pytania mogą być głupie, ale kiedyś trzeba się nauczyć :)
wentylator -> podłączyłem 1 przewód pod sam wentylator - przewód koloru czarnego.
termistory włączone są jak na rys1, a z racji tego, że przecież nie ma ich na płytce dodałem rys.2 patrz na pole pinout i termistor są tam.
przekaźniki sterowane są masą. Tzn do jednej nóżki podane jest +12 po zapłonie, a do drugiej - wyjście z układu oznaczone etykietką "Przekaźnik2SPIRALE"
wykaz elementów
www.lispol.pl
Stabilizator 5V, TO-92 78l05
ke100uf/16T CDławik osiowy 22uH l22uH L
ke10uf/50T C
r10k.025W R
kc100nf/50/2.54 C
r20k.025W R
r100k.025W R
NTC110.100k Termistor
r50k.025W R
r20k.025W R
r2k.025W R
2n3904 Tranzystor
1n4148 Dioda
r330r.025W R
3AR4SC10 LED
OBD.Z24u obudowa
pcb_5x7 płytka
program napisany w arduino:
//układ do sterowania pracą dodatkowej nagrzewnicy
//pomiar napięcia aku na dzielniku 20k do aku+ i 10k do gnd
//pomiar temp powietrza na dzielniku 100k do vcc i ntc110 100k do gnd
//pomiar temp wody na dzielniku 50k do vcc i ntc110 100k do gnd
//pomiar napięcia wentylatora na dzielniku 20k do +wentylatora i 10k do gnd
//led1 w sensie wyjście na przekaźnik nr1
//led2 w sensie wyjście na przekaźnik nr2
//przekaźnik nr2 zasila 2 spirale nagrzewnicy
//vcc filtrowane C=100uF (elektroliczny) i C=100nF (ceramiczny)
//R=10k między reset (PB5) a vcc
//C=100nF między ADC a masę
#define led1 8 //pin przekaznika nr1 PD0
#define led2 6 //pin przekaznika nr2 PD1
#define led3 9 //pin diody sygnalizacyjnej PB3
#define invccPin 5 //pin vcc PC5
#define inpowPin 2 //pin termistora powietrza PC2
#define inwodaPin 4 //pin termistora wody PC3
#define inwentPin 1 //pin wentylatora
int inwodaPinwar = 490; //wartość początkowa dla 45=490 60=385 70=303
int inpowPinwar = 588; //wartość początkowa dla 17stC=588
int invccPinwar = 0; //wartość początkowa dla 12,5V=860
int inwentPinwar = 0; //wartość początkowa dla 8V=546
char c = 0;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(0, OUTPUT); //niewykożystywane piny ustawiam na LOW
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(7, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(0, LOW); //stany na LOW
pinMode(1, LOW);
pinMode(2, LOW);
pinMode(3, LOW);
pinMode(4, LOW);
pinMode(5, LOW);
pinMode(7, LOW);
pinMode(10, LOW);
pinMode(11, LOW);
pinMode(12, LOW);
pinMode(13, LOW);
analogWrite(led3, 255); //syganalizacja diodą przy przekręceniu kluczyka
delay(2000);
analogWrite(led3, 0);
}
void loop() {
while (c < 1) { //opóźnienie na załączenie po odpaleniu silnika
invccPinwar =analogRead(invccPin); //odczyt aku+
if (invccPinwar >= 900) { //załączenie powyżej aku+ 13V
delay(40000); //czas ustawić na 40sek!!! czyli 40000
c = 1;
}
}
invccPinwar = analogRead(invccPin); //odczyt aku+
inwentPinwar = analogRead(inwentPin); //odczyt wentylatora
inwodaPinwar = (inwodaPinwar*9 + analogRead(inwodaPin))/10; //odczyt temp. wody i uśrednianie
inpowPinwar = (inpowPinwar*9 + analogRead(inpowPin))/10; //odczyt temp. powietrza i uśrednianie
if (invccPinwar < 860) { //opóźnienie 5sec na rozłączeniu gdy acu+<12,5 i na włączeniu
delay(4600);
invccPinwar = (invccPinwar + analogRead(invccPin));
delay(100);
invccPinwar = (invccPinwar + analogRead(invccPin));
delay(100);
invccPinwar = (invccPinwar + analogRead(invccPin));
delay(100);
invccPinwar = (invccPinwar + analogRead(invccPin));
delay(100);
invccPinwar = (invccPinwar + analogRead(invccPin))/6;
}
//warunki dla akcji wyłączenia podgrzewacza
if (invccPinwar < 860 || inpowPinwar < 588 || inwodaPinwar < 303 || inwentPinwar > 546) {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
analogWrite(led3, 0);
}
//warunki dla akcji włączenia podgrzewacza
if (invccPinwar >= 860 && inpowPinwar >= 588 && inwentPinwar <= 546) {
if (inwodaPinwar >= 303 && inwodaPinwar < 385) {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
analogWrite(led3, 15);
}
if (inwodaPinwar >= 385 && inwodaPinwar < 490 && inwentPinwar <= 546) {
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
analogWrite(led3, 100);
}
if (inwodaPinwar >= 490 && inwentPinwar <= 546) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
analogWrite(led3, 255);
}
}
}
Cześć emo94.
Tak już łopatologicznie czy ja dobrze rozumiem - że przy podłączeniu termistora jedną nózkę podpinam pod masę a drugą wpinam równolegle w linię zasilania 5V która idzie do procesora pod wejście nr 27?
Załącznik 114487
Jeżeli chodzi natomiast o przekaźnik zasilający grzałki odłączamy istniejące zasilanie sterowaniem przekaźnika, podłączamy do jednej nóżki stały plus jak pisałeś po zapłonie a sterowanie z drugiej nóżki wpinamy równolegle w linię zasilania która idzie dalej na procesor wejście 12.
I jeszcze jedno czy jeżeli będę pierwszy raz lutował na płytce uniwersalnej czy dam radę pomieścić wszystkie elementy na wymiarze 5x7 czy lepiej dać większą :).
Termistor - jedna nóżka do masy, a druga pod procek pin27 (ale to nie jest +5V, bo tam jest rezystor pomiedzy +5V a nóżką 27)
Przekaźnik - tak - do jednej nóżki stałe napięcie (np. + z zapalniczki)
+12V na schematach to + z aku a nie żaden zasilacz...
ja zmieściłem na mniejszej niż 5x7 - masz projekt płytki na rys.3. Tylko przed wlutowaniem trójnóżkowców spr. w datasheecie pinologię....
Cześć - jeszcze dla upewnienia i potwierdzenia, że dobrze czytam ten schemat:
Czyli pod wejście pin27 procka mamy trzy elementy: 1)termistor; 2)zasilanie 5V szeregowo z rezystorem 50k; 3)kondensator C7-100nF?
I tak już bardziej od strony samego sterowania: co daje nam zasilanie i kondensator plus termistor podawane na jeden PIN procesora.
No i dzięki za cierpliwość :)
tak
tworzy się tam dzielnik napięcia (r=50k i termistor o zmiennej R), na podstawie zmieniającego się napięcia na pinie 27, przetwornik ADC przetwarza to napięcie na liczbę 10-bitową i na podstawie tej liczby program podejmuje decyzje...
kondensator jest jako filtr dolnoprzepustowy (unika się skoku napięcia - pomiar jest pewniejszy)