Show Posts
Pages: 1 ... 51 52 [53] 54 55 ... 86
781  International / Scandinavia / Re: Mitt første program vil ikke kjøre - hva er feil? on: February 29, 2012, 12:22:27 pm
Ditto !
782  International / Scandinavia / Re: Programvelger for valg av underprogram on: February 29, 2012, 12:19:43 pm
Nu er en Atmel chip ikke en Ohm-måler, men spænding, men jeg forstår hvad du mener at gøre smiley Hvis 12 modstande har 2% nøjagtighed, så kan en worst case være 24% forkert ... ehr... jeg har ikke tænkt det igennem, men det kan du sikkert. Jeg har ikke kigget på Atiny85 spec sheet hvad område/nøjagtighed dens analog indgang er.

Nåh, til programmering som jeg til gengæld ved mere om.  smiley-cool Jeg vil nok skrive det som
Code:
void loop() {
 val = analogRead(pin) ;
 // delay debug print og andet sjov
 if      ( val <  86 ) func1() ;
 else if ( val < 170 ) func2() ;
 else if ( val < 260 ) func3() ;
  :
 else if ( val < 937 ) func11() ;
 else                  func12() ;
}
Her er man garanteret at en, og kun en, af funktionerne bliver brugt, og man skal kun angive skifteværdierne een (1) gang. Den anden metode kan man nemmere lave et overlap eller have en værdi der ikke matcher nogen if. (Hvad sker ved værdien 300 i det forrige eksempel?)

Og bare for at blære mig  smiley-razz  (undskyld, det er ikke ment sådan ) så er
Code:
val>301&val<400
ikke helt rigtigt - det virker men det er ikke det du beder om. Et enkelt "&" er BitWise-AND som virker hvis de to udtryk er logiske. Det vil være mere korrekt at bruge "&&" som er en logisk operation AND. Det gør ingen forskel i dette eksempel, men hvis udtrykket er mere komplekst kan compileren optimere det logiske udtryk, det kan den ikke når der er bit-wise operatører i midten.

Jeg fortrækker at skrive "between" som
Code:
301 <= val && val <= 400
jeg synes det ser smukkere ud (smag og behag) og viser mere tydeligt at val ligger "mellem 301 og 400".


783  International / Scandinavia / Re: Mitt første program vil ikke kjøre - hva er feil? on: February 22, 2012, 06:02:34 pm
Når du skriver her og du har din kode highlight - så tryk på "#"-ikonet ovenfor editboksen. Den sætter et [ code ]  og [ / code ] par rundt om den, så den (a) kommer i en pæn kasse med scrollbar, og (b) ikke oversætter paranteser og lignende til smiley osv.

Da input editoren ikke kan lide lange mails (på min IE7), skriver jeg dem i notepad og cut-n-paster dem ind i input feltet. Ja, det betyder jeg selv må skrive de der kant-parantes tags. sån er livet smiley-wink

Hvis du vil bruge en resistor på switch indgang, så er det fint med mig smiley Men du kan spare det ved at buge den interne resistor som aktiveres ved at skrive til en port du har sat til input (modsigende, ja) og HIGH sætter en 20Kohm op mod +5V. Så kan kontakten trække pinen til GND.

Og så koden. Din tidligere fejl er et "}" for meget i linjen efter den som fejlmemdningen syår på. Det sker at man skal se på linjen før/efter en fejlmeldning. Jeg kunne bedre lide den end din meget korte nyere eksempel.

Glæder mig til billeder  smiley-cool
784  International / Scandinavia / Re: Hi-speed photography - Writing the timing program? on: February 21, 2012, 03:21:06 pm
Indgange der ikke er tilsluttet noget er lidt tilfældigt om de er op eller ned. Altid set input der ikke bruges til 0 eller 5V (hvis de bruges i programmet. Hvis de slet ikke bruges er det lige meget). Der kan man med fordel bruge den interne pullup, så er en ikke tilsuttet pin helt bestemt på HIGH.

(Jeg ser du får lidt grundlæggende hjælp i den anden tråd smiley )
785  Using Arduino / LEDs and Multiplexing / Re: LED and Water level control for Aquarium on: February 20, 2012, 02:23:37 pm
I looked at your code. (You can attach a file with the code if is too long to include in the message). Clearly you have hacked a lot at it to try and find the errors - lots of functions that do not get called from setup() or loop().

Anyhow, what you are doing now in your loop is
Code:
relay_on_time = millis();
if ( some test on difference between relay_on_time and looptime ) ...
:
loopTime = relay_on_time;
The difference is never going to be bigger than 1 ms and most probably 0ms most of the time, so you are never entering the if block.

I do not like the if ( shutDownTime && shutDownTime <= relay_on_time ) - too cryptic, using the true/false idiom of C, and whilst you (correctly?) rely on precedence of operators you reduntantly use brackets elsewhere. Write it more clearly, you can afford the 0.0008ms you may loose by two needless instructions (or thereabouts, if the compiler does not optimize it away) if ( shutDownTime==0 && shutDownTime <= relay_on_time )
786  Using Arduino / Programming Questions / Re: How to use a stepper command on: February 17, 2012, 04:04:30 pm
Have you tried the stepper work, by just having it sit on the table and controlling it from the Arduino - via some driver transistor/MOSFET/Driver-shield? If you do, you should find your question (as I understand it) is worrying too much.

You use the appropiate stepper library, and set up one parameters - what speed it should do (Steps/second; In the stadnard library this is given as two parameters: Number of steps for revolution and how many revolutions per minute) and then you command how many steps it should step. When it has done those steps it stops; all on its own, so to speak, it is not something coded in the library.

So your code should be quite simple: (Just code fragments, not a complete program)
Code:
Stepper FeedMotor(200,3,4,5,6) ;
  :
void loop()
  :
  if (digitalRead(NextPiece)==LOW) {
     FeedMotor.Step(100) ;
     digitalWrite(KnifeCoil,HIGH) ;
     :
     }
Or instead of the "if" you use a "for" , it will then cut N pieces.
787  International / Scandinavia / Re: Hi-speed photography - Writing the timing program? on: February 16, 2012, 11:20:54 am
Simuleret Arduino, denne Msg tråd. Den er under udvikling (brug ikke penge på den, lev med de 30 sekunders straffeboks smiley ) men kan være en hjælp for dig, da man kan single steppe og den slags.
788  International / Scandinavia / Re: Hi-speed photography - Writing the timing program? on: February 15, 2012, 02:04:36 pm
Dette ser veldig lovende ut. Kan ikke si jeg forstår det, men jeg skal teste programmet, så får du høre hvordan det fungerer.
Har du overhovedet fået din Arduino at virke? - f.eks. med at indlæse File-Example-Blink og ændre intervallet?

Quote
Lurer litt på tilkoplingen av POT-metret. Skal senterkinnen til port A0 og en av sidepinnene til GND, eller skal senterpinnen til GND og sidepinnene til A0 og A1?
Senterkinnen til A0. De andre til hhv +5V og GND. Derfor er en 100K eller 50K pot god, så trækker du ikke meget strøm (5V/100K)

For afprøve pot opkobblingen prøv så File-Example-AnalogInput.

Og så skulle du have nok erfaring at lave et bitte lille program så du kan tænd-slukke Lyset på Pin13 ved en af DIP vippe kontakterne.

Quote
Er det slik at lyset nå vil bli slått PÅ straks Arduino'en får power? Ønsker at lyset slal være AV helt til første sekvens var kjørt, men det er er liten detalj vi eventuelt kan justere senere.
Lyset tænder ved poweron. Og slukker ved knap trykket. Og det kan justeres, ja. (bare fjern den ene linje i setup modulet)
789  Using Arduino / Programming Questions / Re: Timing question on: February 14, 2012, 04:55:27 pm
I dont know what timing you are doing. Do you need to measure something that lasts longer than 49 days? Or is that you use the wrong algorithm when measuring with millis() ?

Code:
unsigned long Timer ;
:
if ( millis() - Timer > Interval ) { /* ... */ }
that works accross a rollover (the magic of unsigned integer math)
790  International / Scandinavia / Re: Hi-speed photography - Writing the timing program? on: February 14, 2012, 12:08:51 pm
Skrevet lidt hurtigt. Kig på det, og se om det matcher dine tanker.
791  International / Scandinavia / Re: Hi-speed photography - Writing the timing program? on: February 12, 2012, 06:34:36 pm
På en normal Arduino Uno har vi D2 til D12 (dvs 11 stk) normale digital in/utgång. D13 er utgång alene, pga den indbyggede LED. D0 & 1 er Seriel, så de kan bruges, men kun når man ikke skal programmere mere (utan at kobble kredsløbet fra) Der er også A0 til A5 (6 styks) der kan bruges som digital ind/ud, men ellers er tænk som analog in (potentiometer). Så i runde tal, har du 16 ind/ud gange.

Jeg har selv kredsløb med photogates. Normalt ikke noget problem.

Program skrivning om en dag eller to
792  International / Scandinavia / Re: Hi-speed photography - Writing the timing program? on: February 12, 2012, 03:42:33 pm
OK, jeg laver nok et nyt program.

Kig på Arduino i File-Examples menuen under Analog for en POT input. (Lysdioden er ikke nødvendig - der er en på dit Arduino kort allerede) SÅ kan du test om din POT er god nok. (Den skal være LINEAR ikke LOG)

De er "DIP-bryter" - det er bare tænd/sluk kontakter? (Jeg tænker på de der bittesmå vippekontakter på et printkort)

Der er 6 analog indgange så jeg vil forslå flere POT til de forskellige indstillinger:
Pot 1: Vanddråbe åben
Pot 2: Vent efter photodiode for vanddråbe
Pot 3: xxx
For dine programer kan betydningen af POTsene være forskellig.

Så du laver en fin frontpanel med et par DIP/vippe kontakter, og en 2-4 POTs... ;-) så kan jeg nok lave programmer.
793  International / Scandinavia / Re: Hi-speed photography - Writing the timing program? on: February 12, 2012, 06:28:50 am
Smukt! Du kan din fototeknik smiley

Tænk, i de "goe gamle dage" ville du for hvert forsøg tage rullen ud, ud i mørkekamret og fremkalde, tilbage at lave en justering og så forsøge igen. (Udover at der kun var LDR som lysmåler og de reagrerer "langsommere" ...)

Nåh, der er ikke noget nyt i din flow chart. Du har i mit program udkast alle delene, du skal bare flytte lidt rundt på linjerne.
Konstruktionen "while ( test ) ;" gør at vi kører i en løkke som du tegner, som første trin. Det der semikolon er MEGET vigtigt ellers bliver det noget helt andet.
"while ( millis()-Start<DelayVærdi ) ;" er det sammes om at skrive "delay(DelayVærdi)". Fordelen er at vi kan kan tilføje noget vi gør mens vi venter - det kan man ikke med delay. Så vil man skrive
Code:
  while ( millis()-Start<DelayVærdi ) {
    if (digitalRead(5)==HIGH) doSomething() ;
   }
"something" kan f.eks. være Start=millis()+DelayVærdi+1 ; - det vil fungere som en "straks udløser"

Jo der er noget nyt i din flow chart som jeg ikke forstår - dit DIPbryter. Antagligen en række switches? Hvis formålet er variere programmet (finjustere tider) så kan man alternativt bruge Serial og indtaste fra komputeren. Er det bedre? Jeg har en lille stump kode der gør det nemt at indtaste kommando-og-tal (hvor jeg skulle finjustere tid-sekvencen af en række lys). Jeg ser heller ikke hvor "C" og "D" i flowchartn går hen.

Jeg har før skrevet hele programmer til folk der var goe til andet en C-sproget på Arduino, der havde sjove projekter - f.eks: men indtil andet tror jeg du gerne vil forsøge selv.
794  Community / Bar Sport / Re: Your latest purchase on: February 11, 2012, 03:38:51 pm
Gotta reply to keep with the in-crowd. I buy lots of things almost every day. Food usually.   smiley-wink

Today I bought some alluminium strips (3x25mmx1m) for general mechanical construction.
795  International / Scandinavia / Re: Hi-speed photography - Writing the timing program? on: February 09, 2012, 07:24:44 pm
Jeg kigger på flowcharten i weekenden. Men der kan jo være andre der har noget at tilføje.

Der er flere der har brugt Arduinoen for alt mulig hjælp til fotografering. Dit projekt er nemt for Arduinoen, reelt kan den styre ting med ca 0,05 ms nøjagtighed.
Pages: 1 ... 51 52 [53] 54 55 ... 86