Grimnar_ Skrevet 14. desember 2011 Rapporter Del Skrevet 14. desember 2011 Nå kan ikke jeg særlig mye om arduino, men siden det er basert på c, så kanskje jeg kan svare. Regner jeg med at du inne i loop() lager en: if( temp >= 30) //er temperaturen høyere eller lik 30 grader? { //set rød led pin høy } if(temp < 30 && temp > 28) //er temperaturen under 30 grader OG temperaturen er over 28 grader { // set gul pin høy } osv... Ellers tenker jeg å kjøpe en arduino i gave til en analog elektronikk utvikler, tenker at det skal være veldig lett å komme i gang med. Dette er da en eldre kar som ikke har programmert noe siden universitetet og da med hullkort! Tips til hva å kjøpe for å komme kjapt i gang (nano, uno, mini?) og hva annet enn en ardu og en usb kabel. Kanskje en ok bok? Lenke til kommentar
Mr. A Skrevet 14. desember 2011 Rapporter Del Skrevet 14. desember 2011 Ellers tenker jeg å kjøpe en arduino i gave til en analog elektronikk utvikler, tenker at det skal være veldig lett å komme i gang med. Dette er da en eldre kar som ikke har programmert noe siden universitetet og da med hullkort! Tips til hva å kjøpe for å komme kjapt i gang (nano, uno, mini?) og hva annet enn en ardu og en usb kabel. Kanskje en ok bok? En Uno vil nok være det kjekkeste å starte med. En bok om c, og kanskje noen komponenter å begynne å programmere til kunne kanskje vært kjekt. Arduino Uno Bok om c/c++ div leds kanskje noen deler fra parallax(PIR/RFID/Ping sensorene er kjekke) Lenke til kommentar
Formula90 Skrevet 14. desember 2011 Rapporter Del Skrevet 14. desember 2011 ja takk for tips, får prøve meg litt frem der må vel ha noe helt i begynnelsen av koden som sier vilken pins lysene er koblet til å eller? å til det den gaven du pratet om så er vel arduino UNO den mest vanlige tror jeg, den de fleste begynner med. kansje kjøpe et sånn kit med breadboard å diverse komponenter så han får testet? men regner med at han har litt sånt liggende? og er jo en masse bøker å kjøpe, regner med at noen andre med mere innsikt kommentere snart : p Lenke til kommentar
Formula90 Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 (endret) Canaldigital hadde som vanlig noe feil så har vært uten internett siden igår mårrest, så da ble jeg sittende å prøve litt selv uten hjelp av internett, prøver fortsatt å lyse noen led lys etter hvor mange grader det er, denne koden er forenklet da jeg bare skulle se om jeg fikk det til først, så her prøver jeg bare å få et lys til å lyse når tempraturn er over 120c (tempratur måleren viser helt feil tempratuerer, derfor den skal lyse etter 120c ) const int temppin = A0; const int ledPin = 2; void setup() { pinMode(0, INPUT); int ledState = LOW; // put your setup code here, to run once: Serial.begin(9600); } void loop() { pinMode(ledpin, OUTPUT); if (A0 >= 120) digitalWrite(LEDpin 2, HIGH); } fikk ikke dette til å funke, regnet ikke med det heller, men noen pointers? så det jeg vil fåtil er at: når temperaturn er under 20c så skal det første blåe lyse lyse, under 15, så skal det adre blået lyse lyse. over 20 så skal den gule led lyse lyse, 25 så skal det andre gule lyse lyse, over 30 så skal det første røde lyse lyse, over 35 så skal begge røde lysene lyse, sjønner? Endret 16. desember 2011 av Formula90 Lenke til kommentar
Grimnar_ Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 (endret) Takker for var! Har bestillt en uno nå, så får vi se om gaven faller i smak. Forumula: Antar at du skal ha pinMode i setup(), men tror ikke det vil gi noe effekt i dette tilfellet. Ellers ser jeg at du har en serial oppe, er det A0 du leser av? Stemmer verdiene? Husk at du også må fortelle hva som skal skje om A0 ikke er over eller lik 120. EDIT: Ardus if tut if (A0 >= 120) { digitalWrite(LEDpin, HIGH); } else { digitalWrite(LEDpin, LOW); } Endret 16. desember 2011 av Grimnar_ Lenke til kommentar
Formula90 Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 (endret) ahhh okey, burde jeg sjønt men kommer opp "LEDpin was not declared in this scope" på digitalWrite(LEDpin 2, HIGH); Hva mener han med det? noe jeg har glømt eller noe jeg må tilføye? har dette i begynnelsen, er ikke dette rett? int temperaturePin = A0; const int ledPin = 2; int ledState = LOW; void setup() { {pinMode(ledPin, OUTPUT);} Endret 16. desember 2011 av Formula90 Lenke til kommentar
BigJackW Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 skal vel stå: digitalWrite(ledPin, HIGH); Om jeg ikke tar helt feil. Altså, kun konstanten, ikke porten også. Usikker på om den er case-sensitive tho. Lenke til kommentar
Grimnar_ Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 (endret) Som C er, så er sikkert dette også case sensitive... Altså LEDpin er ikke lik ledpin Endret 16. desember 2011 av Grimnar_ Lenke til kommentar
Formula90 Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 prøvde å endre til digitalWrite(ledpin 2, HIGH); men ble ikke noe forsjell, så prøvde jeg digitalWrite(ledpin, HIGH); men kom fortsatt opp det samme, hmmmmmm Lenke til kommentar
Grimnar_ Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 Kanskje du kunne posta hele koden din? Ser at Arduino har lagt ut ganske mange gode eksempler du kan se på.. Lenke til kommentar
Formula90 Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 (endret) ja får legge ut koden her: int temperaturePin = A0; const int ledPin = 2; int ledState = LOW; void setup() { {pinMode(ledPin, OUTPUT);} int ledState = LOW; Serial.begin(9600); } void loop() { if (A0 >= 120) {digitalWrite(ledpin 2, HIGH);} else {digitalWrite(ledpin 2, LOW);} } { float temperature = getVoltage(temperaturePin); temperature = (temperature - .5) * 100; { Serial.println(temperature); delay(1000); } { float getVoltage(int pin){ return (analogRead(pin) * .004882814); } } Endret 16. desember 2011 av Formula90 Lenke til kommentar
BigJackW Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 Som Grimnar_ sa så er språket sikker case-sensitive, derfor trenger du stor P på ledPin når du legger konstanten i digitalWrite. Altså, 100% likt definisjonen på konstanten. Lenke til kommentar
Formula90 Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 (endret) ja så det når jeg kopierte den her, så rettet på det, men fikk da opp: expected ) befor numeric constant merker den samme linjen som ista fortsatt.. har ganske mange {{}} sånnre rundtomkring, har kansje ikke helt skjønt hvor de skal være, som dere ser Endret 16. desember 2011 av Formula90 Lenke til kommentar
Grimnar_ Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 veldig veldig mange brackets ja... Sjekk eksemplene og tutorialene hos ardu int temperaturePin = A0; const int ledPin = 2; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { if (A0 >= 120) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } float temperature = getVoltage(temperaturePin); temperature = (temperature - .5) * 100; Serial.println(temperature); delay(1000); } float getVoltage(int pin) { return (analogRead(pin) * .004882814); } Lenke til kommentar
Formula90 Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 (endret) ja jeg får gjøre det, ser endringene du gjorde, funker nå nå må jeg bare få resten av ledlysene til å lyse som de skal å, burde vel ikke være for vanskelig tror jeg men, trodde det bare var å skrive: const int ledPin = 4; // Gult lys 25c - 29c const int ledPin = 5; // Gult lys 20c - 24c const int ledPin = 6; // Blått lys 15c - 19c const int ledPin = 7; // Blått lys 10c - 14c osv, men det jikk jo ikke, pluss at det står jo: if (A0 == 24.71) { digitalWrite(ledPin, HIGH); han hvet jo ikke vilket led lys som ska lyse nå. Enda en ting, fungerer ikke helt som det skal, hvis jeg har: if (A0 < 26) Så lyser lyset hele tiden, prøvd flere forsjellige Comparison Operators som dem kalte det, men er det samme der, enten lyser den hele tiden, eller ikke i det store å det hele Endret 16. desember 2011 av Formula90 Lenke til kommentar
aop9020 Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 Hva om du kaller porten for bare "0" og ikke "A0" ? så kan du skrive int analogPin = 0; if (analogRead(AnalogPin) < lowValue) { digitalWrite(ColdLedPin,HIGH); Lenke til kommentar
Formula90 Skrevet 16. desember 2011 Rapporter Del Skrevet 16. desember 2011 Ikke faen assa, noo bi eg førbanna her! kan jo ikke vær så jævlig vanskelig! xD Lenke til kommentar
aop9020 Skrevet 17. desember 2011 Rapporter Del Skrevet 17. desember 2011 post hele koden du har nå, og forklar hva som er ønsket funksjon, samt hva som ikke virker Lenke til kommentar
Formula90 Skrevet 17. desember 2011 Rapporter Del Skrevet 17. desember 2011 int temperaturePin = A0; const int ledPin = 5; // Rød diode 35c - 40c int ledState = LOW; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { if (A0 <= 25) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } float temperature = getVoltage(temperaturePin); temperature = (temperature - .5) * 100; Serial.println(temperature); delay(500); } float getVoltage(int pin) { return (analogRead(pin) * .004882814); } Så, jeg har 6 led lys som skal lyse etter hvilken tempratur det er, denne koden så har jeg bare et lys, bare for å få det til å virke, så etter på så kan jeg legge til resten. sånn som det er nå, så lyser dioden hele tiden uansett temperatur. når den egentlig kun ska lyse når x <= y (x is less than or equal to y) altså hvis temperaturn er mindre en 25 grader. under ser du hvordan det vil være til sluttt, hvilket lys som skal lyse til hvilken temperatur. const int ledPin = 2; // Rødt lys 35c - 40c const int ledPin = 3; // Rødt lys 30c - 34c const int ledPin = 4; // Gult lys 25c - 29c const int ledPin = 5; // Gult lys 20c - 24c const int ledPin = 6; // Blått lys 15c - 19c const int ledPin = 7; // Blått lys 10c - 14c Lenke til kommentar
aop9020 Skrevet 17. desember 2011 Rapporter Del Skrevet 17. desember 2011 Ok, jeg ville deklarert temperature først, og kun da. Så vil jeg også kalt led pinnene for noe mer beskrivende red, yellow.green osv. Har flyttet selve innlesingen av temp. til først i sløyfen, og lagt prøvingen av tilstanden etter det. Fungerer dette? float temperature = 0; int temperaturePin = 0; int redLedPin = 5; // Rød diode 35c - 40c int ledState = LOW; void setup() { pinMode(redLedPin, OUTPUT); Serial.begin(9600); } void loop() { temperature = getVoltage(temperaturePin); temperature = (temperature - .5) * 100; if (temperature <= 25) digitalWrite(redLedPin, HIGH); else digitalWrite(redLedPin, LOW); temperature = getVoltage(temperaturePin); temperature = (temperature - .5) * 100; Serial.println(temperature); delay(500); } float getVoltage(int pin) { return (analogRead(pin) * .004882814); } 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å