Gå til innhold

Tråden for deg som liker hjemmeelektronikk og mikrokontrollere


Anbefalte innlegg

Mephisto- skrev (9 minutter siden):

hørte en podcast om denne, vanvittig stilig sak med mange nytteverdier, med en sunn skepsis :)

Denne er jo nærmest banebrytende til mitt bruk vertfall. Sparer meg for masse tid vedrørende koding av Arduino feks. Den kan sikkert gjøre veldig mye annet også, men det som er ekstra stilig er at den forstår hva du mener når du skriver lange spørsmål. Den er langt langt smartere enn andre chatboots. 

Jeg er nesten overrasket over at det er gratis. Men det kommer vel til å koste på sikt dette også. Men dette sparer meg for såpass med tid at jeg gjerne kunne betalt noen slanter i måneden for en slik tjeneste :) 

Lenke til kommentar
Videoannonse
Annonse

Her er spørsmåålet mitt jeg skrev på norsk:

Kan du skrive en arduino kode med ultrasonic sensor hvor du bruker simpletimer? Jeg vil også at du i samme koden legger inn fire led dioder som lyser opp med distansene 20, 50, 100 og 150cm.

Her er koden jeg fikk:

#include <SimpleTimer.h> // Inkluder SimpleTimer biblioteket
#include <Ultrasonic.h> // Inkluder Ultrasonic biblioteket

const int trigPin = 12; // Definer trigPin
const int echoPin = 13; // Definer echoPin

Ultrasonic ultrasonic(trigPin, echoPin); // Opprett et ultrasonic objekt

SimpleTimer timer; // Opprett et SimpleTimer objekt

const int led1 = 2; // Definer led1
const int led2 = 3; // Definer led2
const int led3 = 4; // Definer led3
const int led4 = 5; // Definer led4

void setup() {
  pinMode(led1, OUTPUT); // Definer led1 som utgang
  pinMode(led2, OUTPUT); // Definer led2 som utgang
  pinMode(led3, OUTPUT); // Definer led3 som utgang
  pinMode(led4, OUTPUT); // Definer led4 som utgang

  timer.setInterval(1000, measureDistance); // Sett opp et interval på 1 sekund for måling av avstand
}

void loop() {
  timer.run(); // Kjør SimpleTimer
}

void measureDistance() {
  long distance = ultrasonic.read(); // Les avstanden fra ultrasonic sensoren

  if (distance < 20) { // Hvis avstanden er mindre enn 20 cm
    digitalWrite(led1, HIGH); // Slå på led1
    digitalWrite(led2, LOW); // Slå av led2
    digitalWrite(led3, LOW); // Slå av led3
    digitalWrite(led4, LOW); // Slå av led4
  }
  else if (distance < 50) { // Hvis avstanden er mellom 20 og 50 cm
    digitalWrite(led1, LOW); // Slå av led1
    digitalWrite(led2, HIGH); // Slå på led2
    digitalWrite(led3, LOW); // Slå av led3
    digitalWrite(led4, LOW); // Slå av led4
  }
  else if (distance < 100) { // Hvis avstanden er mellom 50 og 100 cm
    digitalWrite(led1, LOW); // Slå av led1
    digitalWrite(led2, LOW); // Slå av led2
    digitalWrite(led3, HIGH); // Slå på led3
    digitalWrite(led4, LOW); // Slå av led4
  }
  else if (distance < 150) { // Hvis avstanden er mellom 100 og 150 cm
    digitalWrite(led1, LOW); // Slå av led1
    digitalWrite(led2, LOW); // Slå av led2
    digitalWrite(led3, LOW); // Slå av led3
    digitalWrite(led4, HIGH); // Slå på led4
  }
  else { // Hvis avstanden er mer enn 150 cm
    digitalWrite(led1, LOW); // Slå av alle ledd
    digitalWrite(led2, LOW);
   

Dette er ganske imponerende!!! :)
 

det er noen få glitch der ser jeg, men er man inne i arduino koding er 95% av kodingen gjort!

Endret av Bjerknez
  • Liker 1
  • Innsiktsfullt 1
Lenke til kommentar

Vurderer forøvrig og kjøpe meg en benkmultimeter. Jeg har kikket en del rundt og her stiger prisene fort.

Kravet mitt er at et benkmultimeter skal være minst like nøyaktig som det beste håndholdte multimeteret jeg og vøre minst like nøyaktig og ha like bra eller bedre oppløsning. 

Pris spiller så klart også inn her, men har funnet ut at Siglent SDM3055 er det beste valget ut fra de jeg har sjekket, i forhold til pris. 

Det er da dette jeg tenker på:
https://www.adroit.no/siglent-sdm3055-5-5-siffer-multimeter.html

Grunnen til at jeg vil ha et benkmultimeter er rett og slett fordi jeg slipper og tenke på batteribytte og at jeg allerede har en plass ledig til det i en hylle som jeg ikke bruker. De to haåndholdte multimeterene jeg har tar opp en del plass på benken ellers så da kan jeg legge disse litt til side og bruke benkmultimeteret som et hovedmultimeter og dermed ha en mer "ryddig" pult. 

Prisen på 6.500ish kroner inkludert frakt er så vidt jeg vet ganske bra i forhold til hva man får mener jeg. Jeg må også koste på meg et par Probemaster prober til ser jeg da jeg må ha rettvinklede kontakter. 

Skal gi lommeboka fri noen dager før jeg evt. bestemmer meg merker jeg. :) 

 

  • Liker 1
Lenke til kommentar

I dag bar jeg ryddet litt i furtebua samt vasket silikonmatten på bordet. Jeg har også provisorisk hengt opp to multimeteret på siden av hyllen for å få bort kabler samt få mer plass på bordplaten. 

Ja, tro det eller ei, men dette er ganske ryddig i forhold til det det pleier å være  😅

ED1C2CB8-5F43-4A87-88F7-80827740EDB0.thumb.jpeg.cdcb780e2b4bb380262fdc00333285bb.jpeg

  • Liker 3
  • Hjerte 1
Lenke til kommentar

Nesten vakkert det der! Har du vurdert mer angående Siglent SDM3055? Litt spennende, men ser ikke helt hvorfor du trenger et så avansert instrument? Sikler litt selv, men som sagt er vel neppe behovet der da jeg har i bøtter og spann med 'vanlige' instrumenter.. 🙂
Vurderer forøvrig å lage en indikator for 'lyd tilstede' som kan brukes som visuell indikator på at mine akk så mange høyttalere her i bua får 'signal'.. Har et 9.1.4 anlegg som jeg gjerne skulle SETT at får signal. Altså 13 stk monitorer med noen LED's som kan plasseres ut på høyttalerne og drevet KUN av de.. Noen gode tips fra deg til egnet (enkel) krets? 

Lenke til kommentar
Woff skrev (1 minutt siden):

Nesten vakkert det der! Har du vurdert mer angående Siglent SDM3055? Litt spennende, men ser ikke helt hvorfor du trenger et så avansert instrument? Sikler litt selv, men som sagt er vel neppe behovet der da jeg har i bøtter og spann med 'vanlige' instrumenter.. 🙂
Vurderer forøvrig å lage en indikator for 'lyd tilstede' som kan brukes som visuell indikator på at mine akk så mange høyttalere her i bua får 'signal'.. Har et 9.1.4 anlegg som jeg gjerne skulle SETT at får signal. Altså 13 stk monitorer med noen LED's som kan plasseres ut på høyttalerne og drevet KUN av de.. Noen gode tips fra deg til egnet (enkel) krets? 

Hehe, takk for det. Poenget er at det skal være funksjonelt. :) 

Jeg har lagt SDM3055 LITT på is foreløpig. Har ikke helt bestemt meg. Jeg har jo to hovedmultimetere som er veldig nøyaktige med 50.000-500.000 count. (Dem som henger på hver side av hyllen). Men samtidig er det noe med et dedikert benk multimeter som trigger meg litt. Men vi får se :) 

det med signal burde vel fikses ganske lett.... tror jeg? Altså hvis jeg har forstått deg riktig. 

Lyd og audio er ikke min sterke side. Hvor mange volt er det i disse signalkablene da? 

Ser for. Meg en simpel optoisolator med krets rundt, men mikrokontroller kan vel også brukes hvis man vil gjøre det mer "fancy"? Men som sagt, en litt mer forklaring på hva du ønsker og hvilke spenninger det er snakk om hjelper nok hvis det er synspunkter du vil ha :) 

Lenke til kommentar
Woff skrev (Akkurat nå):

Nei, har ikke peiling faktisk. Siden den kretsen over her funker bør det neppe være store saken med et potentiometer på inngangen? Vil tro at spenningen varierer avhengig av volum / styrke på lyd..

 

Jeg er som sagt veldig usikker på hvordan audiosignaler fungerer. Men det kan vel testes med et multimeter? 

Men jeg har sett at høytaleren fungerer uansett om man kobler pluss og minus omvendt. Elementet vil bare slå motsatt vei? 

Uansett... man må finne spenningen. Øvre og nedre spenning samt evt. lage en slags map funksjon og la mikrokontroller styre showet? 

Lenke til kommentar

Hehe, du holder deg til trådens tittel med en mer avansert krets ja... 
Nei, kan ikke bli for komplisert dette, får prøve den enkle saken jeg linket til over her. Skal som sagt bli noen 'mini' monitorer for å vise at det kommer lyd ut av høyttaleren. (Hvis du sjekker ut multikanals-lyd skjønner du fort problemet! ) 🙂
Glem dette foreløpig! 🙂

Lenke til kommentar
Woff skrev (2 minutter siden):

Hehe, du holder deg til trådens tittel med en mer avansert krets ja... 
Nei, kan ikke bli for komplisert dette, får prøve den enkle saken jeg linket til over her. Skal som sagt bli noen 'mini' monitorer for å vise at det kommer lyd ut av høyttaleren. (Hvis du sjekker ut multikanals-lyd skjønner du fort problemet! ) 🙂
Glem dette foreløpig! 🙂

Så lenge du vet øvre og nedre spenning på alle kanaler så bør som nevnt dette kunne mappes enkelt med en mikrokontroller. Men som du nevner, så finnes det sikkert enklere måter å gjøre dette på med en passiv krets, men der må jeg nok melde pass. Vertfall frem til jeg før mer informasjon. 

jeg ville vertfall startet med å kartlegge hvilke spenninger det er snakk om og tatt det derfra. 

Når jeg lager kretser fra ideene jeg før så pleier dette å koke rundt oppi hodet i mange dager. Jeg prøver og feiler, søker på nett, ser videoer og prøver igjen. Til slutt, etter noen dager/uker så får jeg det alltids til på ett eller annet finurlig vis 😅

Det er nettopp det som er litt gøy. :)

  • Liker 1
Lenke til kommentar
Woff skrev (53 minutter siden):

Er på jakt etter en utrolig enkel krets som kan drives av en normal høyttalerutgang. Noe lik denne her uten behov for ALLE lysdiodene men heller halvparten.. :

 

Aliexpress.com led vumeter. Her er det vel mest ferdige produkter.

Ah. Ser nå at du skriver DRIVES.

Lenke til kommentar
toreae skrev (1 time siden):

Aliexpress.com led vumeter. Her er det vel mest ferdige produkter.

Ah. Ser nå at du skriver DRIVES.

Utfordringen her slik jeg ser det, er at LED'ene vi snakker om ikke skal reagere på lyden, men på signalene og gjerne flere signaler fra samme høytaler. Da må man gjøre om signaler/spenning til et spenningsområde man kan bruke for å lage et slikt vumeter. Det blir fort mer innviklet, men så klart enkelt for dem som kan det. 

personlig er jeg ikke så mye inne i audio verden, men i teorien skulle jeg nok klart og fått til noe, men føler det ikke interresant nok foreløpig til at jeg gidder å bruke mye tid på det. Har en del andre småprosjekter jeg pusler med også :) 

Men vi kan gjerne diskutere det i denne tråden. Artig å se hvordan dette utvikler seg :)

  • Innsiktsfullt 1
Lenke til kommentar
toreae skrev (2 timer siden):

Aliexpress.com led vumeter. Her er det vel mest ferdige produkter.

Ah. Ser nå at du skriver DRIVES.

Har nå sett videoen (som selvfølgelig er bedre enn bare å svare kjapt, etter å ha lest krets og tenkt integrert krets).

Inn er det likeretter med spenningsdobler. 1 VAC vil gi ca 1,6VDC som er nok til å få 1. LED til å lyse. 2VAC vil gi ca 4,5VDC som er nok til å få 10. LED til å lyse. Siden det da allerede er 9 LED som lyser, skal det sikker være litt høyere spenning. Alt er veldig estimert, siden spenningsfallet over en diode er avhengig av både type og strøm (pluss pluss), og at man lader en kondensator, mens man bruker fra den andre, med en slik likeretter.

 

Lenke til kommentar

Apropos asynkron Arduino-kode. Her er min favorittmåte å lage subroutines på.

long heartbeat_timestamp;
long refresh_lcd_timestamp;

void setup() {
	heartbeat_timestamp = millis(); //Set timestamp
  	refresh_lcd_timestamp = millis();
}

void loop() {
	if(millis() - heartbeat_timestamp > 1000) //1000 ms has passed
	{
		heartbeat_timestamp = millis(); //Reset timestamp
		digitalWrite(13, !digitalRead(13));
	}
  
	if(millis() - refresh_lcd_timestamp > 50) //50 ms has passed
	{
		refresh_lcd_timestamp = millis(); //Reset timestamp
		lcd.tick();
	}
}

 

Lenke til kommentar
Gavekort skrev (23 minutter siden):

Det var ikke kritikk mot simpletimer. Men om jeg skal forsvare min måte å gjøre det på så er ikke simpletimer portabelt til andre rammeverk og jeg prøver å ikke gjøre meg for avhengig av tredjeparts-biblioteker. Det er jo bare en implementasjon av akkurat det jeg gjør her.

Neida, jeg så det ikke som noe kritikk. Jeg bare la til det jeg skrev da jeg vet at mange har større problemer med å forstå millis koden. Jeg er forøvrig enig i det andre du skriver. Det krever et tredjeparts bibliotek, så det kan i værste fall by på kompatibilitetsproblemer. :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...