Arduino-övervakad ringklocka: kretskort färdigt!

Berätta om dina pågående projekt.
Nille86
Inlägg: 65
Blev medlem: 13 april 2019, 13:10:49

Arduino-övervakad ringklocka: kretskort färdigt!

Inlägg av Nille86 »

Hej Forumet! Detta är min första tråd här så jag tänkte att jag skiver lite kort om min bakgrund så ni får något grepp om vilken nivå jag är på. Jag är utbildad elektriker och läser ni vidare till elkonstruktör, känner att jag har ganska bra koll på Ohms lag och normala växelströmskretsar(50hz) men i elektronikvärlden är jag inte så erfaren. Jag har läst en hel del men känner att jag behöver göra något praktiskt för att förstå det bättre. Så mitt första projekt blir att försöka övervaka men ringklocka och jag ska försöka uppdatera den här tråden efterhand som jag kommer vidare i arbetet.

Jag bor i lägenhet och nere i källaren sitter en 12VAC-trafo som matar ringklockorna till sex stycken lägenheter. En knapp sluter kretsen som drar ett relä som slår till en bit stål som börjar låta. Modellen heter Friendland 107 och det verkar inte råda någon brist på andra likadana projekt. I första hand vill jag utföra följande:
1. Konvertera 12VAC till 5VDC som kan spänningsförsörja Arduino och NRF25L01
2. Konvertera 12VAC-puls som uppstår när någon trycker på ringklockan till en "stabil" digital signal
3. Skicka informationen till en andra NRF25L01 som är uppkopplad i min Raspberry Pi.
4. På något sätt notifiera min mobil om att någon har plingat på dörren.

När ovanstående är utfört har jag redan börjat fundera på version 2.0:
5. Ett relä styrt av arduinon ska göra det möjligt att från mobilen göra så att det plingar i dörrklockan(Två-vägs-kommunikation)
6. Alla komponenterna lödas ner på ett experimentkort.
7. Rita ett eget kretskort i KiCad samt beställa.

Jag lägger med elschema 0.1 där jag skissat upp ungefär hur jag tänkt mig.
Jag har testat optokopplaren på breadboard och det fungerade fint, då matade jag arduinon med 9V-batteri.

Det som är helt otestat är spänningsförsörjningen 12VAC -> 5VDC. Min tanke med att använda en separat 7805 är att jag då har möjlighet att leda bort värmen med en kylfläns, Arduinons egen spänningsregulator kommer då inte att användas alls.

Vad säger forumet om mitt schema? Tar tacksamt emot alla förslag på förbättringar/förändringar.

Edit2: Ändrat rubrik för att återspegla vad jag tittar på för stunden.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Nille86 27 augusti 2019, 20:27:38, redigerad totalt 3 gånger.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Arduino-övervakad ringklocka

Inlägg av Icecap »

12Vac blir ung. 15,5V obelastad och att köra det genom en 7805 ska inte vara ett problem alls.

Arduinon drar inte mycket heller så om du ens behöver kylning får du testa dig till. Men det behöver inte vara mycket.

Ditt schema ser i övrigt helt rätt ut.
Nille86
Inlägg: 65
Blev medlem: 13 april 2019, 13:10:49

Re: Arduino-övervakad ringklocka

Inlägg av Nille86 »

Tack för att du tittade igenom Icecap! Jag har ritat in den NRF24L01 som ska kommunicera med mitt raspberry. Angående strömförbrukning uppskattar jag följande:
15mA till NRF24L01 vid sändning
100mA för mitt framtida relä(plingar i klockan från mobil)
20mA Arduino.
Totalt 0,135A som kan gå igenom LM7805 (om än väldigt kortvarigt)

Cirka 12V som spänningsregulatorn behöver sänka vilket ger 12 * 0,135 = 1,62W. Jag har ingen erfarenhet av spänningsregulatorer så det kanske klarar sig utan kylning men det kändes som att den lilla ytmonterade regulatorn som sitter på mitt Arduino-kort skulle kunna få det jobbigt(?).

Jag kom på att mitt kort som är ett Arduino Micro saknar 3,3V spänningsregulator och därför har jag ritat till en sådan som ska försörja NRF24L01-kortet med matningsspänning. De övriga pinnarna ska enligt googlesökrningar vara 5V-toleranta. Nu ska jag fundera på designen någon dag innan jag beställer delar för att bygga ihop den första versionen. Spännande!

Kan någon svara på vad jag ska använda för knapp i KiCad när jag sätter ut in/utgångar på de korten som jag har ritat. Nu har jag använt "Place hierarchical label" men det finns några olika att välja på, vilken är mest rätt?
Sen undrar jag över kondensatorerna, behöver dessa vara polariserade? När behöver de vara polariserade?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
ToPNoTCH
Inlägg: 4847
Blev medlem: 21 december 2009, 17:59:48

Re: Arduino-övervakad ringklocka

Inlägg av ToPNoTCH »

Jag tycker du skall prova räckvidden på NRF24L01 innan du gör för mycket.

Jag har rätt dåliga erfarenheter av dessa när det kommer till räckvidd, i synnerhet genom väggar.
Nille86
Inlägg: 65
Blev medlem: 13 april 2019, 13:10:49

Re: Arduino-övervakad ringklocka

Inlägg av Nille86 »

Bra tips med räckvidden. Bor i lägenhet med betongväggar modell tjocka. Testade precis koppla upp Arduinon och min Raspberry och gick runt i hela lägenheten och det verkar som att jag har signal överallt. Tappade signalen vid ett tillfälle när jag själv blockerade signalen. Så snart jag aktade på mig gick signalen fram ok. Hur fungerar det med att bekräfta datamottagning med nrf24? Kodar jag det i min mjukvara eller finns det något hårdvarustöd man använder sig av?
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Arduino-övervakad ringklocka

Inlägg av Icecap »

Om du vill klara spänningsregleringen utan kylfläns kan en R-785.0-1.0 (Farnell.se 1793143) kanske vara en grej.
En del dyrare men är en SMPS (~80% verkningsgrad) och jag har använd dom ett bra tag utan problem.

Hur man använder KiCad kan jag inte svara på, jag använder EDWinXP.
Användarvisningsbild
HUGGBÄVERN
Tidigare soundbrigade
Inlägg: 32628
Blev medlem: 23 augusti 2006, 22:44:11
Ort: Lilla Paris
Kontakt:

Re: Arduino-övervakad ringklocka

Inlägg av HUGGBÄVERN »

Nille86 skrev:Sen undrar jag över kondensatorerna, behöver dessa vara polariserade? När behöver de vara polariserade?
Man kan säga att plastfolie och keramiska kondingar är snabbare än elektrolyter och tar hand om störningar mer effektivt. Så länge det bara handlar om avstörning eller för att stoppa (parasit)oscilleringar och du har värden upp emot 1uF, kan du köra med vanliga plast eller keramiska.
Polariserade kan du välja när kapacitansvärden blir stora och vanliga opolariserade blir dyra och stora till formatet.
De du ritat ut kan vara av plast- eller keramiktyp.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Arduino-övervakad ringklocka

Inlägg av Icecap »

Så just att C2 är på 330nF - och det är WAY för lite. Den ska fungera som energilager på 50Hz'en och bör vara minst 1000µF/A, alltså minst 470µF. Men tar du 1000µF är det bra.
kodar-holger
EF Sponsor
Inlägg: 916
Blev medlem: 26 maj 2014, 12:54:35
Ort: Karlskoga

Re: Arduino-övervakad ringklocka

Inlägg av kodar-holger »

Nille86 skrev: Kan någon svara på vad jag ska använda för knapp i KiCad när jag sätter ut in/utgångar på de korten som jag har ritat. Nu har jag använt "Place hierarchical label" men det finns några olika att välja på, vilken är mest rätt?
Eftersom du vill ha detta på ditt mönsterkort måste du använda en symbol. I symbolbiblioteket finns alla möjliga kontakter men det viktiga kommer när du väljer PCB-footprint. Så ta en ur connector_generic och välj sen i assign footprint något lämpligt.
Nille86 skrev: Sen undrar jag över kondensatorerna, behöver dessa vara polariserade? När behöver de vara polariserade?
Att en del kondensatorer är polariserade beror på att det är svårt att tillverka opolariserade kondensatorer med stor kapacitans. I många fall vet man redan när man konstruerar saker att där kommer att ligga en likspänning över kondensatorn och då kan man använda en polariserad. Om man vet att spänningen kommer att ha olika polaritet över kondensatorn så måste den vara opolariserad. Så svaret är alltså att den behöver aldrig vara polariserad. Däremot kan det vara nödvändigt att den är opolariserad.
Nille86
Inlägg: 65
Blev medlem: 13 april 2019, 13:10:49

Re: Arduino-övervakad ringklocka

Inlägg av Nille86 »

Icecap skrev:Så just att C2 är på 330nF - och det är WAY för lite. Den ska fungera som energilager på 50Hz'en och bör vara minst 1000µF/A, alltså minst 470µF. Men tar du 1000µF är det bra.
Bra info! Jag tog värden från Texas eget datablad men den behöver tydligen anpassas för aktuell förbrukning. Ska se till att notera liknande "tumregler", känns som det finns en hel del sådana i elektronikvärlden..
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
BJ
Inlägg: 8185
Blev medlem: 11 april 2007, 08:14:53
Ort: En_stad

Re: Arduino-övervakad ringklocka

Inlägg av BJ »

Är inte det där att om det är en bit
mellan den stora kondensatorn och
regulatorn, så rekommenderas det
att man sätter kondensatorn på bilden
i närheten av regulatorn också?
Alltså om komponenterna sitter
en bit isär.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Arduino-övervakad ringklocka

Inlägg av Icecap »

Jeps, den 330nF konding ska vara nära regulatorn och får mycket gärna vara keramisk. Den är till för att stoppa självsväng.
Även om att den stora konding sitter i närheten bör du har den lilla med, detta då stora elektrolyter har dålig ESR och små keramiske har bra ESR. Så de kompletterar varandra och man får det bästa av båda.
Nille86
Inlägg: 65
Blev medlem: 13 april 2019, 13:10:49

Re: Arduino-övervakad ringklocka

Inlägg av Nille86 »

Jag är helt med på vad som menas nu! Den stora kondensatorn är en komponent som "hör ihop" med likriktarbryggan och är till för att släta ut sinusvågorna från nätspänningen. Den två små kondensatorerna vid spänningsregulatorn fyller ett annat syfte. Logiskt egentligen då Texas inte kan avgöra vilken spänning som kommer att mata spänningsregulatorn, det skulle ju kunna vara ren likspänning från ett batteri t.ex.

Jag har lagt en beställtning på diverse kondensatorer, spänningsregulatorer m.m. och borde ha delarna i veckan. Även om det inte är aktuellt precis just nu funderar jag en del över vad man ska använda för experimentkort, hela banor, ensamma öar eller 3-och-3? Jag har inte lödat sedan gymnasiet för cirka 15 år sedan så vad är lättast att lära sig på?
Nille86
Inlägg: 65
Blev medlem: 13 april 2019, 13:10:49

Re: Arduino-övervakad ringklocka

Inlägg av Nille86 »

Jag kunde inte hålla mig tills att jag fick hem mina beställda delar så jag byggde ihop delar av kretsen tillsammans med min arduino uno. Tanken är att den färdiga lösningen ska använda den mindre arduino micro pro. Allting gick väldigt smidigt i början, jag kopplade på mig i dosan för att få in 12VAC till lägenheten och kunde snabbt konstatera att matningen till arduinon verkar vara stabil. Jag laddade upp ett enkelt program som skulle tända den inbyggda lysdioden samt sända "PlingPlong" trådlöst via NRF24L01 när man tryckte på ringklockan. Jag kopplade och kopplade men fick aldrig dioden att börja lysa, jag tänkte att spänningen på optokopplaren var för låg och testade att sänka motståndet något men utan resultat.

Till sist plockade jag ner kortet och felsökte med hjälp av terminalen, den hängde sig tydligen på den trådlösa sändningen och det var därför den aldrig kom vidare för att tända/släcka lampan. Utöver det så använder sig den trådlösa modulen av pinne 13(samma som den inbyggda LEDen) så det var kört oavsett. Jag tror att jag fick svar på min tidigare fråga om huruvida NRF24L01 har inbyggd leveranskontroll, det verkar så med tanke på att den vägrade att gå vidare när den inte fick mottagningskvittens.

Nåväl, med det nya enklare programmet så fungerade åtminstone kopplingen klockrent. Nu blir det till att läsa på om RF24-biblioteket och trimma inställningarna lite. Sen kan jag sitta och knappa på programmeringen i väntan på prylarna.
Lägger med koden som är ett hopplock av exempelkod från olika ställen. Jag har kommenterat bort den delen av koden som gjorde att allting låste sig.

Kod: Markera allt

#include "RF24.h"

RF24 radio(9, 10);
const byte data_pipe[6] = "00001";

// constants won't change. They're used here to set pin numbers:
const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  4;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status


void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.setRetries(15, 15);
  radio.setPALevel(RF24_PA_MAX);
  radio.openWritingPipe(data_pipe);
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {

  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
    //char data[] = "PlingPlong!";
    //radio.write(data, strlen(data));
    Serial.println("TILL");
  } else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
    Serial.println("FRÅN");
  }
  delay(100);
}
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skogen
Inlägg: 901
Blev medlem: 5 januari 2013, 22:50:34
Ort: Alingsås

Re: Arduino-övervakad ringklocka

Inlägg av Skogen »

Jag tror att jag fick svar på min tidigare fråga om huruvida NRF24L01 har inbyggt leveranskontroll, det verkar så med tanke på att den vägrade att gå vidare när den inte fick mottagningskvittens.
Nja, enligt din kod så sänder du men lyssnar inte, och då kan du ju inte ta emot något.
Och någon mottagningskvittens behöver den inte för att gå vidare, det kan du lägga till om du vill.
När jag kör dubbelriktat med nRF så lyssnar jag hela tiden förutom dom korta sekvenser när jag sänder (givetvis).
Lite sent just nu men kan ge något exempel i morgon.

Edit: med reservation för att jag inte riktigt vet om du vill både sända och ta emot
Skriv svar