Marian Postat Decembrie 21, 2014 Partajează Postat Decembrie 21, 2014 La un comparator cu iesire colector deschis este impropriu sa spui ca amplificarea este raportul dintre iesire si diferenta dintre intrari, ( referitor la cele afirmate de @Proiect_01 ), si asta tocmai datorita acestui detaliu al structurii iesirii. Ce faci ca sa obtii un comparator neinversor? Simplu, duci iesirea catre alimentare cu ajutorul unei rezistente, care se numeste rezistenta de sarcina, ce se intampla cand IN+ este mai pozitiva decat IN-? iarasi este simplu, NPN-ul de pe iesirea comparatorului se blocheaza iar iesirea este dusa catre alimentare de catre rezistenta de sarcina, deci vin si intreb, care este legatura dintre raportul dintre iesire si diferenta dintre intrari? ca la urma urmei daca ai alimentare de 10V, diferenta intre intrari de 10mV si iesirea la 10V asta nu inseamna ca amplificarea este de 1000x, ca daca urci alimentarea la 12V iesirea nu ramane la 10V, ci urca o data cu alimentarea. Este o chestie foarte importanta care face diferenta esentiala intre comparator si amplificator operational. Link spre comentariu
Vizitator proiect_01 Postat Decembrie 21, 2014 Partajează Postat Decembrie 21, 2014 (editat) Feritiva de magarus - este o gluma evident, a fost o emisune pentru copii.Este clar ca nu ai libertatea de exprimare si cine crede ca a devenit asa un fel de "GURU" pe aici sa nu-l contrazici sau sa vii cu o observatie ca esti pus la zid. Stiu foarte bine ce face un comparator si admit termenul de AO si nu ma intereseza cum vor altii sa-i spuna. A apărut între timp poza . Da , scrie ce zici tu , o fi un curs de la Școala de vară. Iata cum si cine crede ca are dreptul sa ia totul in deradere.Nu este un curs, este o carte de la editura Facla, autori: Ciugudean M. Tiponut V. Tanase M.E. Bogdanov L. Carstea H. Filip A. citește despre m-ai și mai . Da ai dreptate, nu am observat.Si tu ai greseli: Să el luăm deci pe rând .Pun tot pe seama oboselii. Editat Decembrie 21, 2014 de proiect_01 Link spre comentariu
UDAR Postat Decembrie 21, 2014 Partajează Postat Decembrie 21, 2014 (editat) OK , vreau să ies din acest off topic . Am spus mai devreme că am schițat ceva la tema dată . Dacă OP este dispus să experimenteze - și îl cunosc ca un experimentator remarcabil - eu îmi reiterez disponibilitatea de a proiecta , scrie cod și simula o mică aplicație . Evident , față de ce am scris data trecută termenele se transferă după sărbători . Și , tot evident , voi întreprinde acestă acțiune dacă voi avea confirmarea că există interese de a se experimenta - eu , am mai spus-o , nu pot deocamdată să fac mai nimic pe plan practic. EDITARE Între timp a postat @proiect_01. Da , ai dreptate , toți greșim , chiar dacă un ”typo” cum îi zice pe internet , nu e același lucru cu lipsa unei cratime și , mai ales , nesesizarea acestei lipse. Dar eu am spus ce am gândit în legătură cu problema - nu m-am legat de greșeală cât de neclaritatea enunțului. A fi ironic nu înseamnă a lua totul în derâdere . Dar , cine îmi garantează mie că un oareșicare individ are dreptate doar pentru că a scris un articol, o carte , un doctorat... Am pretenția că am înțeles ceea ce am învățat și mi-am însușit temeinic noțiunile de bază . Poate asta dă impresia unui sentiment de superioritate . Îmi cer iertare dacă e așa . Nu vreau să par superior dar insist cu argumente în favoarea părerilor mele . Editat Decembrie 21, 2014 de UDAR Link spre comentariu
Marian Postat Decembrie 21, 2014 Partajează Postat Decembrie 21, 2014 ...Stiu foarte bine ce face un comparator... Nu, nu stii: ...Amplificarea în tensiune definita ca raportul Vout/VdiffVout = tensiunea de iesireVdiff = diferenta tensiunilor aplicate pe cele doua intrari (+/-)In postul 23:tensiunea de iesire = factorul de amplificare * diferenta dintre tensiunile de intrareAdica: Vout = Au * Vdiff... PS: Nu esti in masura sa te plangi de comportament inadecvat, si postez cateva expresii ale tale ( nu sunt permise decat 2 citate per postare, deci le iau cu copy/paste, si postez link catre postarea respectiva: Ma; ignoranti ca tine; superficialule; cel pierdut in cazul asta esti tu; http://www.elforum.info/topic/95503-caut-schemă-comandă-ventilator-12v-funcție-de-temperatură/?p=1094799 Meriti cu prisosinta un raport pentru expresiile alea si iti promit ca asa se va intampla daca nu incetezi cu agresivitatea, nu acuza pe altii de fix ceea ce faci tu. Link spre comentariu
The_Reaper Postat Decembrie 21, 2014 Partajează Postat Decembrie 21, 2014 Postesz si eu aici un fan controller, nu l-am realizat l-am gasit pe internet nu mai stiu exact unde. http://www.site cu continut explicit.ro/34242615 Link spre comentariu
XAN77 Postat Decembrie 21, 2014 Autor Partajează Postat Decembrie 21, 2014 (editat) @UDAR sunt dispus la teste, mulțumesc de inițiativă. Nu dețin însă acel pic de care spuneai. Eu aveam de gînd cu un tiny13. Dacă nu ai programat pentru avr, merge și pic, pot lucra cu o placă de test cu 16F871. Editat Decembrie 21, 2014 de XAN77 Link spre comentariu
UDAR Postat Decembrie 21, 2014 Partajează Postat Decembrie 21, 2014 E drept , am lucrat doar cu PIC . Și am mult de învățat și acolo , dar ăsta am zis că e un proiect relativ simplu. Am ales PIC12F1501 ca fiind cel mai mic cu PWM hardware dar PIC16F871 este OK pentru niște teste dar este prea mare și prea scump perntru produsul final. Mâine am să mă uit în ce fază am ajuns cu varianta cealaltă și apoi, mai încetuț acuma cu sărbătorile , am să văd ce pot face . Ținând cont că voi lucra în C ( mă rog , mikroC ) probabil că vreun coleg va reuși să porteze codul pentru ATtiny13. Să-l facem noi întâi să meargă. Link spre comentariu
XAN77 Postat Decembrie 21, 2014 Autor Partajează Postat Decembrie 21, 2014 Dacă e C îl portez eu pe avr nu-i problemă. Link spre comentariu
Mircea Postat Decembrie 21, 2014 Partajează Postat Decembrie 21, 2014 (editat) Xan, ma mira cum de nu ai facut deja acest controller. Un simplu divizor rezistiv (unde una din rezistente este senzorul) aplicat unei intrari ADC care apoi scalata corespunzator va controla factorul de umplere al PWM.Iar solutia cea mai simpla: un TC648 sau echivalent. Un chip dedicat pentru astfel de aplicatii.Exista chipuri (cred ca numai on-off) cu senzorul incorporat. Unde citirea temperaturii nu trebuie sa fie prea precisa.LE: Eu lucrez numai in Basic (doar PIC). Daca ajuta sau Udar e ocupat, da de stire.Am facut (cu un 12F617) un generator de semnal dreptunghiular, care din 2 potentiometre regleaza factorul de umplere (8bit = 256 valori) si frecventa (am ales cateva frecvente de la 500 la 200kHz - 7-8 valori). Il folosesc ca sursa de PWM pentru diverse montaje. E similar cu ce vrei tu aici, daca ignori reglajul frecventei.Il pun aici in 5 ore de acum, cand ajung la desktop. Editat Decembrie 21, 2014 de thunderer Link spre comentariu
XAN77 Postat Decembrie 21, 2014 Autor Partajează Postat Decembrie 21, 2014 Da, este o aplicație simplă, doar că m-am ocupat de alte lucruri. Link spre comentariu
Mircea Postat Decembrie 22, 2014 Partajează Postat Decembrie 22, 2014 (editat) In MikroBasic. Codul pentru aplicatia lui XAN este: program PWM_fan' Declarations section dim adc1 as word dim PWMDC_out as byte' Set-up the PICsub procedure InitMain() OPTION_REG = 0x80 ' Pull-up disabled PORTB INTCON = 0x00 ' No interrupt CMCON0 = 0x00 ' No COMP CCP1CON = 0x0C ' P1A (GP2) PWM ANSEL = 0x0B ' AN on GP0,1&4 TRISIO = 0x1B ' GP2,5 outputs, rest of them inputs GPIO = 0x00 ' Clear GPIOend sub' Main programMain: InitMain() ADC_Init() PWM1_Init(500) ' 500Hz PWM1_Start() PWMDC_out = 0 ' 0% DCMeasure:while (TRUE)' PWM DC% pot measurement adc1= ADC_Get_Sample(1)' Aici poti sa pui un IF ca sa faci update de DC numai daca tensiunea la intrarea ADC s-a schimbat. ' Doar ca sa nu faci niste operatiuni inutile. PWMDC_out = adc1 * 2.55 PWM1_Set_Duty(PWMDC_out) ' P1A este folosit ca iesire PWM.wend end Asa cum am zis, poate ii foloseste cuiva proiectul meu. Sunt 3 potentiometri legate la 3 ADC. 1. Unul pentru generare semnal PPM 1-2ms (undeva in jur de 50Hz, oricum nu trebuie sa fie prea precis). ADC #3. 2. Unul pentru control factor de umplere al semnalului PWM. 255 de valori. ADC #1. 3. Unul pentru controlul frecventei semnalului PWM. Am ales cateva valori, dar in functie de rabdarea si abilitatea programatorului se pot pune maximum 1024 valori de frecvente. ADC #0. Tinand cont de toate operatiunile executate de PIC, o anumita scalare a fost necesara. Asta explica acei factori cu multe cifre dupa virgula . Am ifi putut sa controlez PWM-ul direct din registrii PIC, dar in aplicatia de fata nu merita efortul. Astfel reduc posibilitatea controlului factorului de umplere de la 1024 la 255. ' *' * Project name:' PPM 1ms-2ms, PWM generator' * Copyright:' (c) Thunderer (2013).' * Revision History:' 0 - 1st issue' * Test configuration:' MCU: PIC12F617' Oscillator: INTOSC 4 MHz' Ext. Modules: -' *program PPM_PWM_testbank' Declarations sectiondim adc0, adc1, adc3, count, i, PWMfreq_out as worddim PWMDC_out, state as bytedim PPM_out as longword' Set-up the PICsub procedure InitMain() OPTION_REG = 0x80 ' Pull-up disabled PORTB INTCON = 0x00 ' No interrupt CMCON0 = 0x00 ' No COMP CCP1CON = 0x0C ' P1A (GP2) PWM ANSEL = 0x0B ' AN on GP0,1&4 TRISIO = 0x1B ' GP2,5 outputs, rest of them inputs GPIO = 0x00 ' Clear GPIOend sub' Main programMain: InitMain() ADC_Init() PWM1_Init(500) PWM1_Start() PWMDC_out = 127 GPIO.5 = 0 status = 1Measure: while (TRUE)' PPM pot measurement adc3= ADC_read(3) count = 1000 + adc3 * 0.97752 PPM_out = count * 0.026429 for i = 1 to PPM_out GPIO.5 = 1 next i GPIO.5 = 0 Delay_ms(16)' PWM DC% pot measurement adc1= ADC_read(1) PWMDC_out = adc1 * 0.097752 * 2.55 ' PWM frequency pot measurement adc0= ADC_read(0) PWMfreq_out = adc0 if PWMfreq_out < 100 then PWM1_Stop() PWM1_Init(500) PWM1_Start() PWM1_Set_Duty(PWMDC_out) end if if (PWMfreq_out >= 100) and (PWMfreq_out <= 200) then PWM1_Stop() PWM1_Init(1000) PWM1_Start() PWM1_Set_Duty(PWMDC_out) end if if (PWMfreq_out >= 200) and (PWMfreq_out <= 300) then PWM1_Stop() PWM1_Init(2000) PWM1_Start() PWM1_Set_Duty(PWMDC_out) end if if (PWMfreq_out >= 300) and (PWMfreq_out <= 400) then PWM1_Stop() PWM1_Init(3000) PWM1_Start() PWM1_Set_Duty(PWMDC_out) end if if (PWMfreq_out >= 400) and (PWMfreq_out <= 500) then PWM1_Stop() PWM1_Init(4000) PWM1_Start() PWM1_Set_Duty(PWMDC_out) end if if (PWMfreq_out >= 500) and (PWMfreq_out <= 600) then PWM1_Stop() PWM1_Init(5000) PWM1_Start() PWM1_Set_Duty(PWMDC_out) end if if (PWMfreq_out >= 600) and (PWMfreq_out <= 700) then PWM1_Stop() PWM1_Init(10000) PWM1_Start() PWM1_Set_Duty(PWMDC_out) end if if (PWMfreq_out >= 700) and (PWMfreq_out <= 800) then PWM1_Stop() PWM1_Init(20000) PWM1_Start() PWM1_Set_Duty(PWMDC_out) end if if (PWMfreq_out >= 800) and (PWMfreq_out <= 900) then PWM1_Stop() PWM1_Init(50000) PWM1_Start() PWM1_Set_Duty(PWMDC_out) end if if (PWMfreq_out >= 900) and (PWMfreq_out <= 1000) then PWM1_Stop() PWM1_Init(100000) PWM1_Start() PWM1_Set_Duty(PWMDC_out) end if if PWMfreq_out > 1000 then PWM1_Stop() PWM1_Init(200000) PWM1_Start() PWM1_Set_Duty(PWMDC_out) end if wendend.' La compilare: Used ROM (program words): 1505 (73%) Free ROM (program words): 543 (27%) Editat Decembrie 22, 2014 de thunderer Link spre comentariu
XAN77 Postat Decembrie 22, 2014 Autor Partajează Postat Decembrie 22, 2014 (editat) Mulțumesc pentru exemple. Îmi voi face eu un soft pentru tiny13, Testele inițiale în simulator apoi direct pe mcu în cauză. @UDAR nu e nevoie să faci un program, simulare etc, dacă se poate o descriere a algoritmului la care te-ai gîndit și a etajului de intrare în adc avînd în vedere că senzorul este o diodă, probabil o diodă dintr-o diodă dublă capsulă TO220 care o pot prinde pe radiator. Editat Decembrie 22, 2014 de XAN77 Link spre comentariu
giongiu Postat Decembrie 22, 2014 Partajează Postat Decembrie 22, 2014 Am propus pe la inceputul topicului, o schema simpla si ieftina, cu comanda PWM. Foloseste un integrat ce costa cca un leu, UC3843. Testarea schemei respective, nu cred sa ia 10 minute, dar intre timp s-a ajuns la microcontrolere si programare si asta pentru un fleac. Link spre comentariu
XAN77 Postat Decembrie 22, 2014 Autor Partajează Postat Decembrie 22, 2014 Recunosc că mă cuprinde plăcerea programării uneori. E interesantă varianta cu UC3843, cred că o voi pune pe breadboard în curînd. Link spre comentariu
UDAR Postat Decembrie 22, 2014 Partajează Postat Decembrie 22, 2014 @giongiu Merită de încercat varianta propusă de tine - eu am avut niște rezerve care însă s-ar putea demonstra că sunt mai mult de natură teoretică . În altă ordine de idei un µC de 8 pini costă cam la fel cu un UC384x plus piesele aferente . Plus plăcerea de a realiza ceva nou , cum spunea XAN77 mai sus ... @XAN77 Eu gândisem inițial două variante , ambele cu termistor . O să reanalizez și deseară sper să vin cu ceva concret. Acu sunt la serviciu și sunt cam prins . Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum