Kakebakelate Skrevet 17. mai 2014 Del Skrevet 17. mai 2014 Unoen er laget med SMD-kompoenter, samt jeg syns prosjektene i boken til starter kit var barnslig lagt opp. Prosjektene er greie nok de, men ordlyden kunne godt ha vært forandret. Men som jeg sa over, det er akkurat det samme hva du går for. Lenke til kommentar
Kirchhoff Skrevet 24. mai 2014 Del Skrevet 24. mai 2014 Hei, jeg har et problem med klokken på min arduino. Jeg kontrollerer en viftekontroller med PWM. Pga standard PWM frekvens lagde støy satte jeg opp PWM frekvensen til 63.5kHz i setup funksjonen slik: TCCR0B = TCCR0B & B11111000 | B00000001; Men da jeg prøvde disse funksjonene, så jeg at klokken gikk alt for fort. Tar bare 10-20 sek før det har gått en time. Jeg regner med det er en sammenheng mellom PWM frekvensen og klokken, så jeg lurer på om det finnes en måte å få en korrekt klokke samtidig som PWM frekvensen er >20kHz. Lenke til kommentar
Kakebakelate Skrevet 24. mai 2014 Del Skrevet 24. mai 2014 Er det lavfrekvent eller høyfrekvent støy? Et alt. kan være å lage seg et analog LP-filter. Evt så kan du jo bruke en RTC for å ha korrekt klokke, men det bruker du vell kanskje fra før av? Lenke til kommentar
Kirchhoff Skrevet 24. mai 2014 Del Skrevet 24. mai 2014 Støyen kom av at viften skrudde seg av og på 976 ganger i sekunder som ga en lyd med frekvens på 976 Hz. Derfor må PWM frekvensen være over 20kHz. Viftekontrolleren støtter kun PWM input, men jeg kan jo sette en kondensator i parallell på utgangen ja. Bruker ikke en ekstern klokke. Lenke til kommentar
StormEagle Skrevet 24. mai 2014 Del Skrevet 24. mai 2014 (endret) Hei, jeg har et problem med klokken på min arduino. Jeg kontrollerer en viftekontroller med PWM. Pga standard PWM frekvens lagde støy satte jeg opp PWM frekvensen til 63.5kHz i setup funksjonen slik: TCCR0B = TCCR0B & B11111000 | B00000001; Men da jeg prøvde disse funksjonene, så jeg at klokken gikk alt for fort. Tar bare 10-20 sek før det har gått en time. Jeg regner med det er en sammenheng mellom PWM frekvensen og klokken, så jeg lurer på om det finnes en måte å få en korrekt klokke samtidig som PWM frekvensen er >20kHz. Det er antakelig fordi du har tuklet med timeren som brukes i denne "time and date" funksjonen. https://www.youtube.com/watch?v=nfqEcG7EZMo Løsningen er å bruke en annen timer til PWM. Bruk pinne 9 eller 10 til PWM utganger og dermed still på denne timeren: TCCR1B = TCCR1B & 0b11111000 | 0x01; Denne går bare opp til maximalt 31372.55 Hz dog ved en "setting" på 0x01 men jeg vil tro at det er mer en nok (det ligger jo ihvertfall langt ovenfor det hørbare området) Og husk å sette tilbake den timeren som du har tuklet med til default for å få riktig tidsregning igjen: TCCR0B = TCCR0B & 0b11111000 | 0x03; Dette trengs selvsagt bare å gjøres en gang også trenger du ikke å ha det i programmet ditt lenger. Endret 24. mai 2014 av flesvik 1 Lenke til kommentar
Kirchhoff Skrevet 25. mai 2014 Del Skrevet 25. mai 2014 flesvik, den 24 Mai 2014 - 23:01, sa: Kirchhoff, den 24 Mai 2014 - 18:12, sa: Hei, jeg har et problem med klokken på min arduino. Jeg kontrollerer en viftekontroller med PWM. Pga standard PWM frekvens lagde støy satte jeg opp PWM frekvensen til 63.5kHz i setup funksjonen slik: TCCR0B = TCCR0B & B11111000 | B00000001; Men da jeg prøvde disse funksjonene, så jeg at klokken gikk alt for fort. Tar bare 10-20 sek før det har gått en time. Jeg regner med det er en sammenheng mellom PWM frekvensen og klokken, så jeg lurer på om det finnes en måte å få en korrekt klokke samtidig som PWM frekvensen er >20kHz. Det er antakelig fordi du har tuklet med timeren som brukes i denne "time and date" funksjonen. https://www.youtube.com/watch?v=nfqEcG7EZMo Løsningen er å bruke en annen timer til PWM. Bruk pinne 9 eller 10 til PWM utganger og dermed still på denne timeren: TCCR1B = TCCR1B & 0b11111000 | 0x01; Denne går bare opp til maximalt 31372.55 Hz dog ved en "setting" på 0x01 men jeg vil tro at det er mer en nok (det ligger jo ihvertfall langt ovenfor det hørbare området) Og husk å sette tilbake den timeren som du har tuklet med til default for å få riktig tidsregning igjen: TCCR0B = TCCR0B & 0b11111000 | 0x03; Dette trengs selvsagt bare å gjøres en gang også trenger du ikke å ha det i programmet ditt lenger. Takk for grundig svar. Skal prøve å benytte timer 2. Hva mener du med at bare trengs å gjøres en gang? Jeg må vel ha det med i setup hver gang? (ikke i loopen) Lenke til kommentar
StormEagle Skrevet 25. mai 2014 Del Skrevet 25. mai 2014 (endret) Du trenger bare å sette TCCR0B tilbake til default en gang. Deretter trenger du ikke å ha det lenger i setup i programmet ditt for da er det jo allerede blitt satt tilbake til default og det har ingen funksjon i programmet ditt lenger. Da er det bare en kilde til forvirring senere når du ikke lenger husker hvorfor den er der. Endret 25. mai 2014 av flesvik Lenke til kommentar
erlendo89 Skrevet 26. mai 2014 Del Skrevet 26. mai 2014 (endret) Trenger litt hjelp her. Fikk min Arduino i posten i dag, men får den ikke til å fungere som den skal. Det er en billigtype fra dx (http://www.dx.com/p/funduino-uno-r3-mega328p-board-for-hw-sw-engineers-development-tools-150802#.U4Ok-ijm75c ). Når jeg prøver å laste opp et program, så får jeg feilkoden: avrdude: stk500_getsync(): not in sync: resp=0x00 Har googlet litt og prøvd forskjellige løsninger, men får det ikke til. Så da lurer jeg på om det er noen her som kan være til hjelp? Edit: Fant ut av det til slutt. Måtte bare endre serial port. Endret 26. mai 2014 av erlendo89 Lenke til kommentar
larrylu Skrevet 30. mai 2014 Del Skrevet 30. mai 2014 Trenger hjelp. hvordan få 12volt ut ifra min Arduino? Jeg vil helse kjøpe en ferdig løsning ser de har slike: http://www.dx.com/p/1-channel-12v-relay-module-for-arduino-red-156088 http://www.dx.com/p/12v-high-level-trigger-relay-module-for-arduino-blue-152390#.U4hsJSjEDko Jeg skjønner ikke åssen jeg kobler disse til å fungere? Fint hvis noen vet kan komme med en godforklaring på hvordan jeg løser mitt problem ? Lenke til kommentar
Mr. A Skrevet 30. mai 2014 Del Skrevet 30. mai 2014 Trenger hjelp. hvordan få 12volt ut ifra min Arduino? Jeg vil helse kjøpe en ferdig løsning ser de har slike: http://www.dx.com/p/1-channel-12v-relay-module-for-arduino-red-156088 http://www.dx.com/p/12v-high-level-trigger-relay-module-for-arduino-blue-152390#.U4hsJSjEDko Jeg skjønner ikke åssen jeg kobler disse til å fungere? Fint hvis noen vet kan komme med en godforklaring på hvordan jeg løser mitt problem ? Du får ikke 12volt ut av Arduino pinnene uten en transistor av noe slag imellom. De relèene du linker til bruker en ekstern strømkilde på 12volt som styres av en transistor. Transistoren lar strømmen igjennom når den får 5volt fra arduinoen. Lenke til kommentar
StormEagle Skrevet 30. mai 2014 Del Skrevet 30. mai 2014 (endret) Trenger hjelp. hvordan få 12volt ut ifra min Arduino? Jeg vil helse kjøpe en ferdig løsning ser de har slike: http://www.dx.com/p/1-channel-12v-relay-module-for-arduino-red-156088 http://www.dx.com/p/12v-high-level-trigger-relay-module-for-arduino-blue-152390#.U4hsJSjEDko Jeg skjønner ikke åssen jeg kobler disse til å fungere? Fint hvis noen vet kan komme med en godforklaring på hvordan jeg løser mitt problem ? Bruk en MOSFET mellom arduinoen og releet. For MOSFET'er har som regel en intern diode som tar knekken på spenningspeaker fra spoler i tilegg, noe ikke en vanlig transistor har. Noe slikt noe: Men du trenger jo selvsagt ikke å bruke akkurat den MOSFET'en da, bare en som tåler strømen som releet trekker uten å måtte ha noe kjøleribbe og har en passelig gate aktiveringsspenning. Endret 1. juni 2014 av flesvik 1 Lenke til kommentar
Kirchhoff Skrevet 1. juni 2014 Del Skrevet 1. juni 2014 (endret) Hva er enkleste måte å få online datalogging. Og hvor enkelt er det? Har ingen nevneverdig erfaring med webutvikling. EDIT: Bare å følge denne tutorialen? http://arduino.cc/en/Tutorial/WebServer Endret 1. juni 2014 av Kirchhoff Lenke til kommentar
LaStrada Skrevet 2. juni 2014 Del Skrevet 2. juni 2014 Trenger hjelp. hvordan få 12volt ut ifra min Arduino? Jeg vil helse kjøpe en ferdig løsning ser de har slike: http://www.dx.com/p/1-channel-12v-relay-module-for-arduino-red-156088 http://www.dx.com/p/12v-high-level-trigger-relay-module-for-arduino-blue-152390#.U4hsJSjEDko Jeg skjønner ikke åssen jeg kobler disse til å fungere? Fint hvis noen vet kan komme med en godforklaring på hvordan jeg løser mitt problem ? Det enkleste er å kjøpe noen som er lagd for arduino: http://www.dx.com/s/arduino+5v+relay Lenke til kommentar
Kirchhoff Skrevet 14. juni 2014 Del Skrevet 14. juni 2014 (endret) Jeg klarer ikke å inkludere et bibliotek. Laster ned time.zip, trykker sketch->import Library->add Library->time.zip Så skal jeg prøve å importere det; sketch->import Library->time.h Det eneste som skjer er at en blank linje blir satt inn øverst. Har prøvd: #include <time.h> og #include "time.h", men jeg får not declared in this scope når jeg prøver å bruke funksjoner fra time.h. Hva gjør jeg feil og hvorfor får jeg ikke noen feilmeldinger når jeg prøver å importere? EDIT: Fungerte når jeg kopierte time.cpp og time.h inn i sketchmappen, måtte restarte arduino IDEen også. Library funksjonaliteten i IDEen bør de bare kutte ut, for noe tull. Endret 14. juni 2014 av Kirchhoff Lenke til kommentar
Professor Balthazar Skrevet 15. juli 2014 Del Skrevet 15. juli 2014 Spørsmål til forenkling av krets: A) Jeg har en Arvuino Nano som er matet med 12VDC. På en av de digitale utgangene har jeg hengene en BC337 transistor uten noen form bor motstand for å begrense stømmen mellom Base og Emitter. Dette gikk forbausende bra da jeg testet med korte 10mS pulser og tilsynelatende så var det ikke noe som ble varmt. Testet sikkert rund 50 pulser uten å ødelegge noe. Er dette en teoretisk sett OK måte å gjøre det på? B) På en annen digital utgang (samme krets) har jeg hengende en optokopler av type LTV-817C. Kan denne koples også koples direkte uten noen form for formotstand? (Jeg bruker i dag en formotstand på 22Ohm). Lenke til kommentar
Nedward Skrevet 16. juli 2014 Del Skrevet 16. juli 2014 A) Sett at lasten din er plassert mellom Vcc og kollektor og emitter er koblet til jord vil strømmen som går mellom bas og emitter mer eller mindre kortsluttes til jord. Den blir svært høy og du vil sannsynligvis skade utstyret ditt. Har du plassert lasten din mellom emitter og jord vil lasten din fungere som en strømbegrenser for basis. Det du risikerer nå er at transistoren ikke går i metning (hvis det er hensikten) og strømmen igjennom lasten din blir lavere enn det du egentlig trenger. B) Det samme gjelder her. Du får relativt stor strøm igjennom optokobleren din ved å fjerne motstanden. Praktisk talt en kortslutning. Bruk motstander så er du sikker på at prosjektet ditt kommer til å holde. Det blir fort strømmer som er større enn mikrokontrolleren din tåler. Lenke til kommentar
ATWindsor Skrevet 19. juli 2014 Del Skrevet 19. juli 2014 Jeg sliter litt med programmering av en arduino her, jeg skal styre en servo via kommandoer fra nett, jeg får til å sette arduinoen på nett, få ip, motta kommandoer over telnet, og sende kommandoer til servoen. Utrolig nok er der det strander å ta samle inn det som sendes av kommandoer til en string, som derettes sendes som en integer til servoen, eksempelkoden er kun for å ta imot det som skrives og printe det, så kan jeg utvide. #include <SPI.h> #include <Ethernet.h> byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x58, 0x14 }; byte ip[] = { 192, 168, 1, 210 }; //setter opp server EthernetServer server(23); EthernetClient client; boolean connected = false; //kommandoen som sendes til serveren String kommando; void setup() { //starter server Ethernet.begin(mac, ip); server.begin(); } //alt over dette virker til å fungere fint. void loop() { EthernetClient client = server.available(); if (client) { int teller = 0; while ((bokstav = client.read()) != 'a') //sjekker om bokstaven a kommer inn, som er satt som escape her, //dvs sender jeg 182a, så skal tallet 182 sendes til servoen. { kommando += bokstav; } client.println(kommando); } } //her prøver jeg å gjøre strengen om til en integer void parseCommand() { int vinkel = kommando.toInt(); client.println(vinkel); } Lenke til kommentar
LaStrada Skrevet 20. juli 2014 Del Skrevet 20. juli 2014 Litt tungvindt å måtte lagre det som String for å så endre det til int. Og hvor kaller du parseCommand? Se på dette eksempelet (ikke prøvd det selv): http://www.baldengineer.com/blog/2012/07/30/arduino-multi-digit-integers/ Lenke til kommentar
Professor Balthazar Skrevet 21. juli 2014 Del Skrevet 21. juli 2014 A) Sett at lasten din er plassert mellom Vcc og kollektor og emitter er koblet til jord vil strømmen som går mellom bas og emitter mer eller mindre kortsluttes til jord. Den blir svært høy og du vil sannsynligvis skade utstyret ditt. Har du plassert lasten din mellom emitter og jord vil lasten din fungere som en strømbegrenser for basis. Det du risikerer nå er at transistoren ikke går i metning (hvis det er hensikten) og strømmen igjennom lasten din blir lavere enn det du egentlig trenger. B) Det samme gjelder her. Du får relativt stor strøm igjennom optokobleren din ved å fjerne motstanden. Praktisk talt en kortslutning. Bruk motstander så er du sikker på at prosjektet ditt kommer til å holde. Det blir fort strømmer som er større enn mikrokontrolleren din tåler. Takk for svar. Vil jo ikke ødelegge noe så da setter jeg tilbake motstandene. Mulig det gikk bra siden jeg bare sender ut pulser. (Ja, lasten henger mellom VCC og kollektor). Lenke til kommentar
ATWindsor Skrevet 21. juli 2014 Del Skrevet 21. juli 2014 (endret) Litt tungvindt å måtte lagre det som String for å så endre det til int. Og hvor kaller du parseCommand? Se på dette eksempelet (ikke prøvd det selv): http://www.baldengineer.com/blog/2012/07/30/arduino-multi-digit-integers/ Har modifisert så den tar inn en char-array, men sliter fortsatt, virker som arrayet fylles umiddelbart når jeg telnetter inn til arduinoen, char-arrayet fylles opp med en gang, før jeg rekker å skrive noe. AtW #include <SPI.h> #include <Ethernet.h> byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x58, 0x14 }; byte ip[] = { 192, 168, 1, 210 }; //setter opp server (telnet, port 23) EthernetServer server(23); EthernetClient client; boolean connected = false; //kommandoen som skal tas imot av kliten String kommando; const byte BUFFER_LENGTH = 3; // make this long enough to hold your longest command char buffer[BUFFER_LENGTH+1]; // +1 allows space for the null terminator byte bufferCount; //char f = "a"; //char g = "b"; //char h = "c"; char testar[4]; void setup() { //starter serveren Ethernet.begin(mac, ip); server.begin(); } void loop() { // sjekker om klintt kobler seg til EthernetClient client = server.available(); //om klienten er på, mota tegn som klienten skriver inn, legg inn tegnene i "kommando", og print kommando if (client) { client.println("Tilkoblet via Telnet"); testar[0] = 'c'; testar[1] = 'd'; testar[2] = 'e'; client.println(testar); while (client.connected()) { if (client.available()) { char c = client.read(); if(c == 'a') { client.println("char er lik a"); client.println(buffer); handleMessage(buffer); bufferCount = 0; buffer[bufferCount] = 0; // if you want the server to disconnect the client after receiving the first command, call client.stop(); here } else { if(bufferCount < BUFFER_LENGTH) { buffer[bufferCount++] = c; buffer[bufferCount] = 0; // append null terminator client.println("char er IKKE lik a"); } else { // buffer full - discard received character } } } } } } void handleMessage(char *msg) { client.println(buffer); } Endret 21. juli 2014 av ATWindsor Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå