Roger's projekt

Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Roger's projekt

Inlägg av lillahuset »

Man brukar använda udda övertoner. https://en.wikipedia.org/wiki/Crystal_oscillator
Crystals above 30 MHz (up to >200 MHz) are generally operated at series resonance where the impedance appears at its minimum and equal to the series resistance. For these crystals the series resistance is specified (<100 Ω) instead of the parallel capacitance. To reach higher frequencies, a crystal can be made to vibrate at one of its overtone modes, which occur near multiples of the fundamental resonant frequency. Only odd numbered overtones are used. Such a crystal is referred to as a 3rd, 5th, or even 7th overtone crystal. To accomplish this, the oscillator circuit usually includes additional LC circuits to select the desired overtone.
Användarvisningsbild
HUGGBÄVERN
Tidigare soundbrigade
Inlägg: 32775
Blev medlem: 23 augusti 2006, 22:44:11
Ort: Lilla Paris
Kontakt:

Re: Roger's projekt

Inlägg av HUGGBÄVERN »

Jag menade mindre när jag skrev större och tvärtom.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Roger's projekt

Inlägg av Spisblinkaren »

Jag är fortfarande inte riktigt med på vad du menar men jag tror mig förstå bättre nu, tack!

Det sista du skriver gör mig dock konfunderad, är det inte så att en fyrkantsvåg består av endast udda övertoner dvs det går inte att använda 113MHz/4 men väl 113MHz/5?

MVH/Roger
PS
Jag missade ovanstående svar, detta svar är riktat till MiaM's senaste svar.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Roger's projekt

Inlägg av Spisblinkaren »

soundbrigade skrev:Jag menade mindre när jag skrev större och tvärtom.
Okej, jag är med :)
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Roger's projekt

Inlägg av Spisblinkaren »

Projekt #15: Knoppson Philips Project KPP-15A [Ordinarie tråd: http://elektronikforumet.com/forum/view ... =3&t=75123]

Detta är ett renoveringsprojekt av mina gamla Philips Experimentlådor (EE2003-EE2006). Eftersom jag är 47år så var det ett tag sedan jag höll på med dessa trevliga experimentlådor för elektronik. En hel del komponenter har försvunnit genom åren men dom mest kritiska har jag på nåt sätt lyckats ha kvar. Detta gäller t.ex mellanvågs- och långvågsspolar lindade på vaxat papper för kunna träs över en rund ferritstav (som jag också har kvar). Det jag komponentmässigt saknar är mest diverse motstånd och en del speciella keramiska rör-kondensatorer som jag vet är relativt enkla att få tag i. Ett större problem är att vid en av mina flyttlass råkade jag slänga hela den blå pulpeten. Så jag måste bygga mig en ny. Jag råkar just idag få köpt ramverket i form av 8X8mm furulist som ska stadga upp den perforerade masoniten som jag kommer använda som kopplingsplatta. Perforerad masonit har tyvärr felaktigt cc hålmått och håldiameter så jag måste borra upp alla hålen och sen får saker som de speciella PCB för trissorna (som jag kommer gnugga ihop, troligtvis) sitta lite snett. Allt blir alltså lite mindre än original men jag har beslutat mig för detta för det blir för dyrt annars.

Lådornas beskaffenhet i original: http://www.hansotten.com/index.php?page ... 7-8-ee2017

Bygget när det närmar sig TV: http://www.experimentierkasten-board.de ... f=82&t=881

STATUS: SKISS
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Spisblinkaren 18 januari 2016, 19:54:29, redigerad totalt 2 gånger.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Roger's projekt

Inlägg av Spisblinkaren »

Projekt #16: Knoppson Power Supply KPS-90C [Ordinarie tråd: http://elektronikforumet.com/forum/view ... =3&t=64228]

Detta är ett rätt misslyckat projekt. De två föregångarna var nästan ännu mer misslyckade. A & B byggdes med en bilbatteriladdare som transformator och chassi. Sen monterades en liten plastlåda på fronten som innehöll två enkla serieregulatorer mha av transistorer och då för dubbel matningsspänning. Det byggdes också in ett kortslutningsskydd som permanentades till 0,5A för varje rail. Enheterna krånglade ofta då inget var riktigt genomtänkt speciellt map layout (veroboard, banor) och kylflänsar. Speciellt hängde kylflänsarna i var sin BDX33/34 och då i luften. När A-varianten gått sönder för typ femte gången byggde jag B-varianten som dock gick sönder efter bara några månader varvid jag till slut gav upp och köpte ett mycket prisvärt och bra UNI-T UTP-3702 för runt 1400 på Kjell. Men detta först typ 2013 dvs min "bilbatteriladdare" följde med mig i 23 år :)

C-varianten visas nedan men är som sagt ingen höjdare. Jag brukar höja revisionsläge enbart för sånt jag byggt så denna C-variant kommer förmodligen bytas ut mot en helt annan C-variant. Denna nya variant funderar jag helt seriöst på om jag inte skall bygga som en DC-förstärkare modell OP där man dels kan skicka in en liten DC-signal och få förstärkaren att inta alla lägen mellan Vcc och Vss (i teorin) samtidigt som man kan överlagra en AC. Detta möjliggör nämligen så att man kan testa t.ex en transformators induktans som funktion av DC-spänningen och därmed magnetiseringen. Detta är nämligen mycket intressant när man designar utgångstransformatorer för rör. Och vill man istället bara driva en högtalare för att kunna mäta på den kan man ha en utgång som blockerar (eventuell) DC med en kondensator dvs fool-proof :) Jag tänker mig också att KPS ska vara "stackningsbar" så att man kan ta fram rena mono-enheter men välja vem som är Master respektive Slave varvid man får tracking på kanske ett 2X24V/5A-agg (mha SMPS). Jag medger att jag inte riktigt tänkt igenom det här men tror att det går att lösa.

STATUS: SKISS
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Spisblinkaren 18 januari 2016, 19:55:06, redigerad totalt 3 gånger.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Roger's projekt

Inlägg av Spisblinkaren »

Projekt #17: Knoppson Processing Unit KPU-11A [Ordinarie tråd: http://elektronikforumet.com/forum/view ... =3&t=63087]

Det här projektet var roligt att designa. Jag började 2011 med att installera Xilinx ISE (6.01i). Sen letade jag rätt på det ingående schematiska cad-programet (ECS) där man alltså kan cadda med enbart grindar. Eftersom jag började använda diskreta logikkretsar redan som 16-åring så föll detta mig i smaken. Under den tvångsmässiga och fullständigt meningslösa lumpen kom jag i kontakt med boken Digitalteknik av Danielsson som en lumparpolare till Chalmerist hade med sig. Jag fann denna bok fascinerande och skapade mig ett par KF genom ordervägran bara för att kunna studera den :D Kort sagt, den inspirerade mig och lärde mig mycket om diskret digitalteknik. Det bör påpekas att ett avsnitt behandlar hur en sekvensmaskin modell tvättmaskin fungerade. Jag plankade hela den lösningen och implementerade den i min 208-pinnars CPLD som "Instruktionsregister". Jag var f.ö fast besluten att inte nyttja färdiga flanktriggade SR-flip/flop moduler utan ville bygga egna. Tyvärr gick inte detta pga att hasarder inte hanteras så bra i ECS så jag blev till slut att nyttja dom färdiga. Förutom färdiga SR-vippor så är dock precis allt caddat med diskreta grindar och detta inkluderar Register, Skiftregister, Adderare och U/D-räknare (såsom t.ex stackpekare, SP) mm. Det jag fick ut av mängder med virande och planerande under kanske två år var att min 8-bitars CPU (Motorola 6809 Mnemonics och inspirerad) kunde exekvera instruktionen JMP korrekt. Jag hade alltså skapat ett litet testprogram motsvarande c.a 15 rader kod där jag dels försökt läsa in data (Start: LDA$) från databussen (manuellt satt mha 2st HEX-omkopplare och latchning) dels jämfört med fixt värde (CMP#) dels utfört en branch-instruktion (typ BNE Start) om värdet inte stämmer sen gör jag en till LDA/CMP/BNE för ett annat värde (bara för att få CPU att utföra nåt) och sist kör jag en JMP Start. Brancherna visade sig inte fungera alls, CPU tuggade bara igenom adresserna en efter en som om branch ej fanns men när den kom till den sista instruktionen, JMP, hände det fantastiska att den hoppade till Start och började om :) Detta är inte mycket att skryta med med tanke på allt arbete både mentalt som fysiskt samt vad allt kostade, men att JMP faktiskt fungerar implikerar att mycket ändå fungerar i min CPU. T.ex fungerar adressbuss, databuss (som var speciellt knölig att programmera ty bidirektionell), programräknare (inklusive laddning av ny adress som sker sekventiellt med hög respektive låg byte), POR (Power On Reset) mm. Så jag ser det faktiskt mer som en succe' än ett fiasko. Jag hade kanske kunnat försöka få speciellt brancherna att fungera men programmeringen av alla EPROM blev för jobbig. Det hade varit okej om bara ett EPROM behövde uppdateras men jag såg tidigt att i princip alla 6st skulle behöva programmeras om och då utgåendes från en mycket primitiv manuell metod där jag t.ex räknar ut checksumman manuellt (för att sedan skicka datat till Dataman3-programmmeraren).

Video på det fantastiska hoppet:

STATUS: PROTOTYP
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Spisblinkaren 18 januari 2016, 19:55:51, redigerad totalt 1 gång.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Roger's projekt

Inlägg av Spisblinkaren »

Projekt #18: Knoppson RIAA Amplifier KRA-92D [Ordinarie tråd: http://elektronikforumet.com/forum/view ... =3&t=64491]

Detta är mitt fjärde försök att bygga en bra RIAA-förstärkare. Samtidigt som jag designade denna förförstärkare införde jag en möjlighet att valfritt koppla bort RIAA-korrigeringen och istället möjliggöra rak förstärkning så att enheten även kan användas för mikrofoner. Jag har också infört en telepropp som kopplar ur den interna MM-belastningen (47k//150pF) och istället bara ger 1M belastning. Detta gör att man anpassa inimpedansen till godtycklig mikrofon. Den enda nackdelen med denna konstruktion är att den bara kan hantera dynamiska mikrofoner ty kondensatormikrofoner kräver fantommatning. Men det finns inget som hindrar att man t.ex tar till ett 9V-batteri och matar en kondensatormikrofon via ett motstånd innan man skickar in signalen i KRA. Pga detta så fungerar min KRA till alla typer av lågsignalsförstärkning (det finns tom en vipp-omkopplare som åtminstone nästan ger MC-kompatibilitet) inklusive studiomikrofoner såsom t.ex Shure.

STATUS: SERIE
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Spisblinkaren 18 januari 2016, 19:56:24, redigerad totalt 1 gång.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Roger's projekt

Inlägg av lillahuset »

En sak som gör mig lätt förundrad är att du mixar rör och transistorer i dina projekt. Inte för att det är något fel men för att det (åtminstone i min värld) förtar lite av tjusningen med rör.
Om jag skulle konstruera något liknande, med ambitioner, skulle jag förmodligen välja de mest avancerade (moderna) komponenter jag kom över. Men det är ju tråkiga jag och jag hävdar bestämt att det är roligt att läsa om dina projekt. :tumupp:
Mina projekt skulle säkert bestå av extremt översamplade digitala prylar som förmodligen inte lät ett dugg bättre. Men mätte bättre, vad det nu är värt.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Roger's projekt

Inlägg av Spisblinkaren »

lillahuset skrev:En sak som gör mig lätt förundrad är att du mixar rör och transistorer i dina projekt. Inte för att det är något fel men för att det (åtminstone i min värld) förtar lite av tjusningen med rör.
Om jag skulle konstruera något liknande, med ambitioner, skulle jag förmodligen välja de mest avancerade (moderna) komponenter jag kom över. Men det är ju tråkiga jag och jag hävdar bestämt att det är roligt att läsa om dina projekt. :tumupp:
Mina projekt skulle säkert bestå av extremt översamplade digitala prylar som förmodligen inte lät ett dugg bättre. Men mätte bättre, vad det nu är värt.
Hej lillahuset!

Tack för ditt intressanta och roliga inlägg :)

Anledningen till att jag mixar rör och halvledare har lite med design att göra. Rör är mina favoriter men de är lite klumpiga. Så om man vill få till en så snygg design som möjligt samtidigt som den inte får se för klumpig ut (en katodföljare behövs ju liksom annars på utgången dvs ett rör till) så känner jag mig lite tvingad till att ta till transistorer.

Observera dock att transistorns bidrag till distorsionen är, enligt mig, obefintlig då detta beror på att utgångsimpedansen (1/gm) är av storleksordningen 100 Ohm samtidigt som lasten, i det här fallet, är större än 10k. För säg att 1/gm "distar" hela 10%, då har du ändå bara 1/10*100/10k=10ppm "dist" :)

Fast om transistorn i sig förstör eller inte förstör det "varma" ljudet, det vet jag inte. Tycker bara att det låter tillräckligt bra :)

MVH/Roger
PS
Mina projekt skulle säkert bestå av extremt översamplade digitala prylar som förmodligen inte lät ett dugg bättre. Men mätte bättre, vad det nu är värt
:D
Men det är ju tråkiga jag och jag hävdar bestämt att det är roligt att läsa om dina projekt. :tumupp:
Tackar :)
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Roger's projekt

Inlägg av Spisblinkaren »

Projekt #19: Knoppson Radio Project KRP-13A [Ordinarie tråd: http://elektronikforumet.com/forum/view ... =3&t=65166]

Det här har varit ett mycket roligt och lärorikt projekt. Jag gick in i projektet utan att egentligen kunna ett skvatt om RF :D Sen lärde jag mig en hel del via experiment, studier och vägledning av Er EF-nördar :D Målet var att bygga en rörradio med enbart trioder (för jag inbillade mig att man lättare skulle kunna se "flödet" då). För att enklare kunna labba med bygget valde jag att att först försöka bygga mha n-kanals JFET av min favoritmodell dvs BF245A (som ju biaseras på precis samma sätt som rör). Det första jag sen behövde lära mig var att bygga mig en (ställbar) oscillator modell LO. Jag fastnade tidigt för Hartley-oscillator av någon anledning (trots att Colpitt egentligen är smidigare). Labbade mig, mha EF, fram till en 25MHz oscillator ställbar mha en kapacitansdiod (det var flera på EF som hjälpte mig med den här biten så ingen nämnd, ingen glömd). När jag sedan ville ha en blandare hittade jag en enkel sak skriven med bläck på papper via nätet. Den nyttjade helt enkelt två JFET som var staplade på varandra och styrdes så att vardera insignal adderades olinjärt vilket ju är detsamma som multiplikation och när nåt multipliceras faller summafrekvens och skillnadsfrekvens ut. Nåt sånt tror jag det är. För att testa blandaren byggde jag sedan en "exakt" likadan Hartley. Efter blandaren monterade jag sedan ett enkelt MF-filter som var avsett att ta hand om skillnadsfrekvensen enbart. Jag satte MF-frekvensen till 5MHz experimentellt vars exakt frekvens ju visade sig först senare när jag rattade på Hartley_1 respektive Hartley_2 så jag fick runt 5MHz ut på MF. Det var närmast extas när jag lyckades få ut nåt :) Senare beslutade jag mig för att lite slarvigt injicera en 1kHz ton på ena Hartley genom kapacitiv koppling till kapacitansdioden. Därefter började konstruktionen av en kvotdetektor (KD) som jag nästan maniskt hade beslutat mig för att bygga :D Men Jesus, än idag fattar jag ingenting av hur den faktiskt fungerar annat än att jag faktiskt lyckades återskapa den injicerade 1kHz :) Fast jag undrar om ett par hundradelar av en Volt kan kallas succe'? Här vill jag tacka YD1150 för all hjälp med denna nästan mystiska mojäng i en FM-radion. Jag fick en hel del gammal skön rör-litteratur i ämnet som var mycket detaljerad och bra men blev inte så klok som jag skulle velat bli. I vilket fall, mitt nedanstående rör-schema är nästan färdigt för provbygge. Anledningen till att jag inte kör igång är att jag är övertygad om att jag signalmässigt stupar redan innan signalen kommit in i radion. Dvs Miller-effekten gör så att det inte blir nån förstärkning alls i ingångskretsen. Här vore det trevligt om någon kompetent person kunde förklara varför RF-transformatorer mellan stegen tycks vara ett måste och varför.

STATUS: SKISS
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Spisblinkaren 18 januari 2016, 19:57:11, redigerad totalt 1 gång.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Roger's projekt

Inlägg av Spisblinkaren »

Projekt #20: Knoppson Turntable KSP-15A [Ordinarie tråd: http://elektronikforumet.com/forum/view ... =3&t=76910]

Detta är ett projekt jag inte kommit speciallt långt med men jag har fått testat min ide' om en primitiv tonarmsupphängning. Upphängningen består av en bit nylonlina som går igenom ett rektangulärt litet tonarmshus och en kvadratisk tonarm av aluminium där själva upphängningen utgöres av den friktion som bildas när tonarmshuset tiltas varvid dess nåltryck ställs in så att säga inverterat i förhållande till tyngdkraften. Upphängningenside'n har mest ett problem, när tonarmen föres radiellt utmed skivan så är nåltrycket något större i ändkanterna pga den cirkelbågsrörelse tonarmen utför. Denna cirkelbågsrörelse kan dock minimeras om nylonlinan spänns hårt. Samtidigt är ett jämt nåltryck utmed hela skivan knappast någon nödvändighet speciellt om vi snackar en variation på +/-10% bara. Jag har inte lagt för mycket energi på detta projekt då jag helt enkelt inte har plats för dylik apparat men jag tycker det är intressant.

STATUS: SKISS
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Spisblinkaren 18 januari 2016, 19:57:48, redigerad totalt 1 gång.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Roger's projekt

Inlägg av Spisblinkaren »

Projekt #21: Knoppson Standalone Unit KSU-15A [Ordinarie tråd: http://elektronikforumet.com/forum/view ... =4&t=64640]

Det här är mitt livs första (privata) programmeringsprojekt där jag mest programmerar i C, tror jag :) Normalt skulle jag bara programmera under pistolhot men i detta fallet har en mycket god vän till mig bett mig programmera. Jag har alltså fått full frihet att lösa ett visst problem som går ut på att en analog sensor motsvarande en trådtöjningsgivare ger värden hos folks styrka som skall kunna dokumenteras och presenteras på ett vettigt sätt. Via en praktikant faktiskt på mitt jobb fick jag tipset om hur enkelt Arduino UNO är att jobba med. Så jag köpte en sådan och började leka. Måste säga att det var mycket enkelt att komma igång, imponerande faktiskt. Så efter en stund körde jag igång med seriös programmering (utgåendes från nåt enkelt blink-exempel). Sen köpte jag en logger-modul (till SD) med realtidsklocka från Adafruit (som jag fick att fungera relativt enkelt) och satt och programmerade i flera månader. Jag fick tacksam hjälp både från Arduinos forum, EF och jobbkollegor. Jag byggde även ett oslagbart vackert LED-display mha virning och skiftregister (HC164). När jag sedan var nästan klar fick jag mycket skumma problem med LED och UNO. Visade sig efter nyköp av både processor och utvecklingskort att det var en dålig potentiometer som var boven. Satte en lyt på löparen och sen fungerade det. Programmet jag bifogar nedan fungerar men sågades nästan fullständigt av min vän även om jag tycker det löser problemet.

STATUS: PROTOTYP

Kod: Markera allt

#include <Wire.h>
#include "RTClib.h"
#include <SD.h>

File myFile;

RTC_DS1307 rtc;

void setup() {               
  pinMode(6, OUTPUT); //green LED for Cal
  pinMode(7, OUTPUT); //red LED for newUser acknowledgement
  pinMode(8, OUTPUT); //SDO for shift register
  pinMode(9, OUTPUT); //CLK for shift register
  pinMode(10, OUTPUT); //CS for Adafruit LS
  pinMode(2, INPUT); //input for newUser button
  pinMode(3, INPUT); //input for Cal button
  analogReference(EXTERNAL);
  digitalWrite(9, LOW);//forces LED CLK to zero
  delayMicroseconds(100);
  initLED();//FFFF on LED for setup indication
  delay(500);
 
  Serial.begin(9600);
  Wire.begin();
  SD.begin(10);
 
//Enable these two rows for virgin RTC
//rtc.begin();
//rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

//generates a virgin file while newUser not being pressed 
  myFile = SD.open("Start.txt", FILE_WRITE);
}

int temp;
int tempCal; //temporary calibration variable
int tempMaxForce; //used to track maxForce
int sensor_stat;
int sensor_dyn;
int holdTime_stat;
int holdTime_dyn;
int newUser_stat=1;
int newUser_dyn;
int cal_stat=1;
int cal_dyn;
char filename;
char filetest;
int Seconds;
int offSet;
int NrOfSeconds;

int Year;
int Month;
int Day;
int Hour;
int Minute;
int Second;



int strengthArray[500]; //array for converted samples (RAM=2kB, 1 value=10bit~2B)
int seg[8];
int ABCD[4];
int old_stat=1;
char out;

int j=0; //sample counter init
int maxForce=0; //initiates maximum force to 0kg
int peakHold=0; //initiates peakHold to zero seconds.

int actualForce(int Sample) {
  return Sample; //may scale 0-1023 optionally
}

/*
void getFileName(){
DateTime now = rtc.now();
sprintf(&filename, "%02d%02d%02d_%02d%02d%02d.txt", now.year(), now.month(), now.day(), now.hour(), now.minute(), now.second());
//sprintf(&filnamn, "test_%d.txt", 1);
}
*/

void getFileName(){
DateTime now = rtc.now();
sprintf(&filename, "%02d%02d%02d%02d.txt", now.day(), now.hour(), now.minute(), now.second());
}


void memoryFull(int state) {
  if (state==1)
  digitalWrite(7, HIGH); //green@debug
  if (state==0)
  digitalWrite(7, LOW);
}

void ackBlink() {
  digitalWrite(7, HIGH);
  delay(100);
  digitalWrite(7, LOW);
}

void highBlink() { //._.___
  digitalWrite(6, HIGH);
  delay(10);
  digitalWrite(6, LOW);
  delay(100);
}

void lowBlink() { //.___
  digitalWrite(6, HIGH);
  delay(10);
  digitalWrite(6, LOW);
  delay(700);
}

void calBlink() { //ON
  digitalWrite(6, HIGH);
}

void clockPulse(){
  digitalWrite(9, LOW);
  delayMicroseconds(10);
  digitalWrite(9, HIGH);
  delayMicroseconds(10);
  digitalWrite(9, LOW);
  delayMicroseconds(10);
}

int inv (int biten){
  if (biten == 0)
  return 1;
  else
  return 0;
}

void getDigit (int value){
  int primA, primB, primC, primD, A, B, C, D;
  primA=(value / 1000);// value=0-1023=ABCD
  primB=(value / 100);
  primC=(value / 10);
  primD=value;
  A=(primA % 10);
  B=(primB % 10);
  C=(primC % 10);
  D=(primD % 10);
  ABCD[0]=D;
  ABCD[1]=C;
  ABCD[2]=B;
  ABCD[3]=A;
}
 

void decode (int digit) {
  switch (digit){
  case 0:
  seg[0]=0;//a
  seg[1]=0;//b
  seg[2]=0;//c
  seg[3]=0;//d
  seg[4]=0;//e
  seg[5]=0;//f
  seg[6]=1;//g
  seg[7]=1;//DP, may be replaced by a variable
  break;
  case 1:
  seg[0]=1;//a
  seg[1]=0;//b
  seg[2]=0;//c
  seg[3]=1;//d
  seg[4]=1;//e
  seg[5]=1;//f
  seg[6]=1;//g
  seg[7]=1;//DP, may be replaced by a variable
  break;
  case 2:
  seg[0]=0;//a
  seg[1]=0;//b
  seg[2]=1;//c
  seg[3]=0;//d
  seg[4]=0;//e
  seg[5]=1;//f
  seg[6]=0;//g
  seg[7]=1;//DP, may be replaced by a variable
  break;
  case 3:
  seg[0]=0;//a
  seg[1]=0;//b
  seg[2]=0;//c
  seg[3]=0;//d
  seg[4]=1;//e
  seg[5]=1;//f
  seg[6]=0;//g
  seg[7]=1;//DP, may be replaced by a variable
  break;
  case 4:
  seg[0]=1;//a
  seg[1]=0;//b
  seg[2]=0;//c
  seg[3]=1;//d
  seg[4]=1;//e
  seg[5]=0;//f
  seg[6]=0;//g
  seg[7]=1;//DP, may be replaced by a variable
  break;
  case 5:
  seg[0]=0;//a
  seg[1]=1;//b
  seg[2]=0;//c
  seg[3]=0;//d
  seg[4]=1;//e
  seg[5]=0;//f
  seg[6]=0;//g
  seg[7]=1;//DP, may be replaced by a variable
  break;
  case 6:
  seg[0]=0;//a
  seg[1]=1;//b
  seg[2]=0;//c
  seg[3]=0;//d
  seg[4]=0;//e
  seg[5]=0;//f
  seg[6]=0;//g
  seg[7]=1;//DP, may be replaced by a variable
  break;
  case 7:
  seg[0]=0;//a
  seg[1]=0;//b
  seg[2]=0;//c
  seg[3]=1;//d
  seg[4]=1;//e
  seg[5]=1;//f
  seg[6]=1;//g
  seg[7]=1;//DP, may be replaced by a variable
  break;
  case 8:
  seg[0]=0;//a
  seg[1]=0;//b
  seg[2]=0;//c
  seg[3]=0;//d
  seg[4]=0;//e
  seg[5]=0;//f
  seg[6]=0;//g
  seg[7]=1;//DP, may be replaced by a variable
  break;
  case 9:
  seg[0]=0;//a
  seg[1]=0;//b
  seg[2]=0;//c
  seg[3]=1;//d
  seg[4]=1;//e
  seg[5]=0;//f
  seg[6]=0;//g
  seg[7]=1;//DP, may be replaced by a variable
  break;
  }
}

void tmpDisplay (void){
  for (int i=7; i>=0; i--){
  if (seg[i] == 0) out = LOW;
  else out = HIGH;
  digitalWrite(8, out); // writes one segment at the time for each digit
  clockPulse(); 
  }
}
 

// displays value on LED
void displayTmp(int value){
    getDigit(value);
    decode(ABCD[0]); //decodes D
    tmpDisplay(); //sends it
    decode(ABCD[1]); //decodes C
    tmpDisplay(); //sends it
    decode(ABCD[2]);
    tmpDisplay();
    decode(ABCD[3]);
    tmpDisplay();
}
   
// sensor value is somehow stored to SD
void storeSensor(int* value){
  temp=value[1]; //dummy
}

// sensor value needs to be time stamped and not an array like above
void storeToSD (int value) {
  temp=value; //dummy
}

// holdTime<3s
void holdTime(int value){
  peakHold=value*3;
}

// newUser enables new data sequence input
void newUser(){
    Serial.println("Closing File");
    myFile.close();
    getFileName();
    Serial.println(&filename);
    myFile = SD.open(&filename, FILE_WRITE);
    ackBlink();
    j=0;//resets sample counter
    maxForce=0; //resets maxForce
}

// Cal calibrates sensor to actual reference force (5kg)
void Cal(){             
  tempCal=analogRead(0);//put 5kg of force before pressing Cal button
  while ((tempCal>5) || (tempCal<5)) { //tune as closely as you can
    if (tempCal>5) highBlink();//blinks green LED ._.___
    if (tempCal<5) lowBlink();//blinks green LED .___
    delay(500);//tune pot on sensor
    tempCal=analogRead(0);
  }
  calBlink();//turns green LED on
  //j=0; //resets sample counter
  maxForce=0; //resets maxForce
  //memoryFull(0); //turns off red LED
}

void Sensor(){
  displayTmp(sensor_dyn);
  //dataMonitor(sensor_dyn);
  DateTime now = rtc.now();
  j=j++;
  if (j==1) {
  offSet=now.minute()*60 + now.second();
  Seconds=0;
  }
  if (j>1) {
    Seconds=now.minute()*60 + now.second() - offSet;
  }
  myFile.print(Seconds);
  myFile.print(' ');
  //myFile.print(',');//Do not work for csv...
  myFile.println(sensor_dyn);
}

void initLED (void){ //sends FFFF to display
  seg[0]=0;//a
  seg[1]=1;//b
  seg[2]=1;//c
  seg[3]=1;//d
  seg[4]=0;//e
  seg[5]=0;//f
  seg[6]=0;//g
  seg[7]=1;//DP
  tmpDisplay();
  tmpDisplay(); 
  tmpDisplay();
  tmpDisplay();
}


void dataMonitor(int sample){
 
  DateTime now = rtc.now();
 
  Serial.print(sample);
  Serial.print("kg");
  Serial.print(' ');
 
  Year=now.year();
  Month=now.month();
  Day=now.day();
  Hour=now.hour();
  Minute=now.minute();
  Second=now.second();
 
  Serial.print(Year);
  Serial.print('-');
  Serial.print(Month);
  Serial.print('-');
  Serial.print(Day);
  Serial.print(' ');
  Serial.print(Hour);
  Serial.print(':');
  Serial.print(Minute);
  Serial.print(':');
  Serial.print(Second);
  Serial.println();
}

void loop () {
 sensor_stat=analogRead(0);
 delay(1100);
 
 newUser_dyn=digitalRead(2);
  if ((newUser_dyn==0) && (newUser_dyn != newUser_stat)){
     newUser();
  }
 newUser_stat=newUser_dyn;
 
  cal_dyn=digitalRead(3);
  if ((cal_dyn==0) && (cal_dyn != cal_stat)){
    Cal();
  }
 cal_stat=cal_dyn;
 
 sensor_dyn=analogRead(0);
  if (abs(sensor_dyn-sensor_stat)>1){
    Sensor();
  }
}
 
 
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Spisblinkaren 18 januari 2016, 19:58:33, redigerad totalt 1 gång.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Roger's projekt

Inlägg av Spisblinkaren »

Projekt #22: Knoppson Test Amplifier KTA-15A

Det här projektet började väldigt tafatt. Jag vill alltså förstärka min funktionsgenerator såpass mycket att signalen kan driva en högtalare. Jag var inte så intresserad av perfekt förstärkning mest förstärkning som inte förvrängde signalen för mycket. Och när man ändå, till skillnad från i rörvärlden, har tillgång till komplementära transistorer tänkte jag mig ett Klass B-steg. När det gäller (komplementära) halvledare ser jag inte någon annan vits än att köra i Klass B. Klass A blir nästan löjligt i jämförelse med rörvärlden där det verkligen är berättigat. Så jag satsade min energi på att bygga ett Klass B-steg. Den absolut första varianten fattade jag dock mha Er att den var kass. Sen lärde jag mig emellertid mer och mer hur man kan bygga. Eftersom jag snöat in mig på att mina halvledarprodukter skall funka vid 9V och ville ha minst en halv Watt ut i 4 Ohm så lär mig en EF-person vid namn RoPa hur man istället för "svingslukande" Darlington kunde nyttja så kallade CFP (Complementary Feedback Pair) istället där man bara tappar ett bas-emitterspänningsfall istället för två. Jag byggde då en prototyp och fick nästan ut en halv Watt redan vid 6V matning. Sen har jag uppgraderat konstruktionen så att, även om den i grunden är byggd som en OP, den är konfigurerad för enkel matningsspänning och då med inbyggd valmöjlighet att köra inverterad eller icke-inverterad förstärkning vilket är bra om man skulle få för sig att nyttja två enheter för bryggkoppling i t.ex bil.

STATUS: SERIE
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Spisblinkaren 18 januari 2016, 19:59:12, redigerad totalt 1 gång.
Användarvisningsbild
Spisblinkaren
EF Sponsor
Inlägg: 12990
Blev medlem: 13 december 2012, 21:41:43

Re: Roger's projekt

Inlägg av Spisblinkaren »

Projekt #23: Knoppson Transistor Tester KTT-13A

Det här projektet går ut på att bygga en "Curve Tracer" för transistorer av alla de slag. Gränsvärdena uppåt kommer ligga på c.a 23V/5A som då levereras av en eller två SMPS. Projektet är bara i sin linda men delen jag kallar KTI är testbyggd och fungerar. Räknaren ger en trappstegsformad signal för bas/gate-styrning om exakt 10 steg (så man lättare kan räkna ut vad varje steg på skåpet innebär i basström/gatespänning). Det mesta är ganska rättfram så schemastudier uppmanas för intresserade.

STATUS: SKISS
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Spisblinkaren 18 januari 2016, 19:59:41, redigerad totalt 1 gång.
Skriv svar