Vis indlæg

Denne sektion tillader dig at se alle indlæg oprettet af dette medlem. Bemærk at du kun kan se indlæg der er oprettet i områder du i øjeblikket har adgang til.


Beskeder - dani8303

Sider: [1] 2
1
Arduino & Lign. / Sv: Tænd/ sluk af flere udgange samtidigt.
« Dato: August 29, 2018, 21:36:26 »
Hej
Har skrevet din kode om, så det ikke fylder så meget. Pin 14 er sat til at slukke alle udgange. Koden skulle virke, men er ikke testet(Kompilere dog fint).
Kode:
#include <Arduino.h>

const int numLeds = 10;
const int button[] = {2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10,11}; //Pins for buttons
const int led[] =    {30,31,32,33,34,36,38,39,40,41}; //Pins for light emiting diodes
const int ledExtra[] {-1,-1,-1,-1,35,37,-1,44,45,-1}; //Extra pin for same output

const int shutdownAll = 14; //Pin to shutdown all outputs;

long buttonLastDown[] = {0,0,0,0,0,0,0,0,0,0};//Latest time the button was pressed down
bool ledStat[] = {0,0,0,0,0,0,0,0,0,0};//The current stat of the leds. Change all 0 to 1 for default to turn on.

void updateLeds(){
	for(int i = 0; i < numLeds; i++){
		digitalWrite(led[i],ledStat[i]);
		digitalWrite(ledExtra[i],ledStat[i]);
	}
}

void setup(){
	for(int i = 0; i < numLeds; i++){//All led pins will be outputs
		pinMode(led[i],OUTPUT);
		pinMode(ledExtra[i],OUTPUT);
	}
	updateLeds();
    for(int i = 0; i < numLeds; i++){//All button pins will be pulled up.
		pinMode(button[i],INPUT_PULLUP);
	}
    pinMode(shutdownAll, INPUT_PULLUP);//PULLUP for all off button.
    /*OLD CODE*/
    pinMode(22, INPUT_PULLUP);
    pinMode(42, OUTPUT);
    pinMode(23, INPUT_PULLUP);
    pinMode(43, OUTPUT);
}

void loop(){
    /*Reading all the buttons*/
    for(int i = 0; i < numLeds; i++){
        if(!digitalRead(button[i])){//Button down NO-button. Remove invert(!) for NC-button.
            if(millis()- buttonLastDown[i] > 500){//It is over 0.5 sec since the button was pressed.
                ledStat[i] = !ledStat[i];
                updateLeds();
            }
            buttonLastDown[i] = millis();//Blocking debounce
        }
    }
    /*Shutdown all*/
    if(!digitalRead(shutdownAll)){//Button down NO-button. Remove invert(!) for NC-button.
        for(int i = 0; i < numLeds; i++){
            ledStat[i] = 0;//Set to 1 in order to turn on all leds instead
        }
        updateLeds();
    }

    /*OLD CODE - SIMPLI*/
    digitalWrite(42, digitalRead(22));
    digitalWrite(43, digitalRead(23));
}

2
Generel Elektronik / Sv: Dioder
« Dato: Juli 11, 2018, 17:30:12 »
Er det noget blinklys til en bil eller hvad? Tror nemlig en del af modstandene på det store print er til at skabe forbrug. Dette forbrug bliver skabt for at snyde CAN-BUS, så forbruget ligner en normal glødepære. Jeg tror derfor ikke selve dioderne bruger 10.7 watt.

Kan du eventuelt måle spændingen over en diode. Kan du komme til at bryde forbindelsen til en diode på flex-printet. Du kan så måle strømmen ved at sætte et amperemeter på hver side af bruddet.

3
Generel Elektronik / Sv: Dioder
« Dato: Juli 11, 2018, 16:15:12 »
Hvor mange volt burde printet virke ved nu? Hvor mange ampere bruger det?
Er ikke helt klar over hvad du mener med at forsinke tændingen. Ud fra printet at se, så er alle dioderne tændt eller slukket. Du kan altså ikke styre dioderne enkeltvis. Ved mindre der jeg har overset noget.

4
Har du overvejet en ESP8266. Eksempelvis denne type: Nodemcu v3https://www.aliexpress.com/item/1pcs-V3-NodeMcu-Lua-WIFI-module-integration-of-ESP8266-extra-memory-32M-Flash-USB-serial-CH340G/32879758161.html?spm=2114.search0104.3.37.59874c31U2pww6&ws_ab_test=searchweb0_0,searchweb201602_1_10152_10151_10065_10068_10344_10342_10343_10340_10341_10696_10084_10083_10618_10304_10307_10820_10821_10302_10059_100031_524_10103_10624_10623_10622_10621_10620,searchweb201603_12,ppcSwitch_2&algo_expid=ced8b0ac-c071-40cd-b865-9b64cdc0bbda-8&algo_pvid=ced8b0ac-c071-40cd-b865-9b64cdc0bbda&priceBeautifyAB=0. Den kan forbinde til WiFi og hente indhold fra internettet. Board'et er understøttet af Arduino IDE, der skal bare tilføjes et link under "Board manager". Herefter er det bare med at få skrevet noget kode. Her ville det være oplagt at pinge en hjemmeside for at teste om der er internet. Der findes et bibliotek der kan dette: https://github.com/dancol90/ESP8266Ping/blob/master/examples/HostPing/HostPing.ino. Så skal koden bare rettes lidt til og to dioder med modstande tilføjes.

Venlig hilsen Daniel Dannerelv

5
Arduino & Lign. / Sv: Meget varm step motor
« Dato: Juli 26, 2017, 13:53:45 »
Husk at en stepper motor bør drives med konstant strøm og ikke konstant spænding. Den fejl begik jeg selv, da jeg byggede en 3D printer. Magnetfeltet i en spole er givet ved antal viklinger gange strømmen. Det er altså strømmen, der styre stepper motorens kraft.

Jeg løste problemet ved at koble en spænding/strøm regulator før h-broen. Skrue spændingen fuldt op og herefter justere strømmen, så den passer med det ønskede(0.4A eks).

6
Forstærkere / Sv: Måle på op amp med scope
« Dato: Juli 26, 2017, 13:40:14 »
Nej. Husk dog pullup eller pulldown på indgangene, hvis den er floating(input der ikke drives).

7
Arduino & Lign. / Sv: Fjernstart af bil med Arduino
« Dato: November 27, 2016, 03:56:23 »
Hej her er et lidt sent svar, hvis du ellers ikke har fået det til at virke.

Jeg tror ikke at du forbinder til netværket. Efter hvad jeg kan se, så bruger du måske en sim900A. Efter min viden skulle sim900A ikke virke i Danmark og flere lande. Du kan flash firmwaren lavet til en sim900 på sim900A, hvorved den kommer til at virke(Har selv haft gjort dette). Du kunne eventuel også bare købe et sim800l modul, hvilket er meget lettere. sim800l virker fint i Danmark, har selv brugt dem. Her er et link til hvordan den anden firmware kan flashes http://www.easy4engineers.com/problem-ph-net-sim-flashing-sim900a-to-sim900/. Er over et år siden jeg har haft gjort det, men mener du skal koble dig på debug serial i stedet for normal serial. Her kan pinoutet af sim900A ses http://linhkien.vntech24h.com/upload/product/500px-Sim900a_top_view.png. Det er dog vigtigt at huske på at selve sim900A'eren kun er til 4 volt! Du skal derfor bruge en levelshifter. En 3,3V volt serial forbindelse brude også virke. Her er et link til et sim800l board, hvilket ville være den nemmere løsning. http://www.ebay.com/itm/SIM800L-V2-0-5V-Wireless-GSM-GPRS-MODULE-Quad-Band-W-Antenna-Cable-Cap-M105-Top-/331769005193?hash=item4d3ef94489:g:BLYAAOSwCqVXiIf0

Desuden ville jeg nok overveje at bruge softwareserial, så du slap for at bruge pin 0 og 1, da du normalt kun bør bruge disse til serial/bootloader. Med softwareserial ville det også blive lettere for dig at lave fejlfinding.

Daniel

8
Tag + fra strømforsyning 1 og kobbel til - på strømforsyning 2. Her får du nu grund, altså  0 volt. - på strømforsyning 1 er nu -15 volt, mens + på strømforsyning 2 er +15 volt.

Hvad skal det bruges til? Bare nysgerrig :).

9
Generel Elektronik / Sv: data logning af tryk
« Dato: Juni 15, 2016, 14:33:38 »
Efter hvad jeg ved så gør der ikke. Jeg har før haft lavet et liggende projekt, hvor det dog var temperatur og tryk jeg loggede. Her endte jeg med at lave et program i "C#"/"Virtual studio" til at læse dataende. Personligt ville jeg nok lave mit eget program til at læse dataende. Er der nogle programmeringssprog du har erfaring med?

10
Generel Elektronik / Sv: data logning af tryk
« Dato: Juni 15, 2016, 00:10:04 »
Den giver 100(102 ifølge mine beregninger  ;)) fordi der er 0,5 volt på indgangen, hvilket ifølge specifikationerne betyder ingen tryk  ;D. Du skal dog bruge lidt ekstra kode til at konventer fra int fra analogRead() til bar. Jeg skrev lidt kode, som du muligvis kan bruge til dette. Jeg ændrede også så den læser fra alle 6 analoge porte, hvilket du skrev du gerne ville.
Kode:
/*
  SD card datalogger - Ændret til at passe med tryksensor

 This example shows how to log data from three analog sensors
 to an SD card using the SD library.

 The circuit:
 * analog sensors on analog ins 0, 1, and 2
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4
 */

#include <SPI.h>
#include <SD.h>

const int chipSelect = 4;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");

  // see if the card is present and can be initialized:
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    // don't do anything more:
    return;
  }
  Serial.println("card initialized.");
}

void loop() {
  // make a string for assembling the data to log:
  String dataString = "";

  // Læser data fra analog 0 til 5
  for (int analogPin = 0; analogPin < 7; analogPin++) {
    int sensor = analogRead(analogPin);//Her kommer dataende fra sensoren    
    // På Ebay siden står det OUTPUTTET fra sensoren er fra 0.5 til 4.5 volt, mens tryk intervallet er
    // 0 til 1.2Mpa. 1 Mpa er 10 bar, hvorved 1.2 Mpa må være 12 bar. 0.5Volt er så 0bar, mens 4.5 Volt
    // må være 12 bar. analogRead() giver integer på 0 ved 0 volt. Den giver tilgængæld en int på 1023,
    // hvis der er 5 volt.

    // Hvad giver analogRead(), så når der er 0.5 volt. Lad os regne os frem til dette. 
    // 1023/5(volt maks)*0.5(volt givet) = 102
    // Denne er værdi er altså den samme som den du logger, når de ikke laver over undertruk på sensoren.
    // Det giver altså ganske god mening de resultetater du har fået. Lad os bare trække denne værdi fra inddata
    sensor = sensor - 102;
    // Nu er dataende centerede om nul. Nu mangler de bare at blive konverterede til bar. 
    // Hvad data må variablen "sensor" give når der er 12bar?
    // Der vil altså være 4.5 volt. Nu ønskes det at finde den værdi som analogRead() giver
    // 1023/5(volt maks)*4.5(volt givet) = 920.7
    // Der skal dog lige trækkes 102 fra dette
    // Følgende kan nu opstilles: 818.7 * x(ukendt) = 12(bar)
    // Så byttes der lige lidt rundt, og løsningen findes
    // 12/818.7 = 0,014657384
    //Denne værdi kan nu bruges til at omregne til bar
    double bar = sensor * 0.014657384;
    
    dataString += String(bar);
    if (analogPin < 6) {
      dataString += ",";
    }
  }

  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  File dataFile = SD.open("datalog.txt", FILE_WRITE);

  // if the file is available, write to it:
  if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
    // print to the serial port too:
    Serial.println("Skrevet til log: \""+dataString+"\"");
  }
  // if the file isn't open, pop up an error:
  else {
    Serial.println("error opening datalog.txt");
  }
}

11
Arduino & Lign. / Sv: Arduino Pro Mini 3.3v / 5v
« Dato: Juni 12, 2016, 00:21:34 »
På de arduino pro mini'er jeg har brugt har man ikke kunne omskifte. På arduino pro mini er der dog en pin der hedder "RAW". Til denne pin kan tilsluttes eksempelvis 12V. På "VCC" pin'en vil der så enten være en spænding på 3,3V eller 5V. Den eneste måde du kan bruge begge spændinger er ved at tilføre den ønskede spænding direkte til "VCC". Pas dog på ikke at brænde Atmega'en af ved overspænding. Kommer du eksempelvis til at tilslutte 12V direkte til "VCC", så går Atmega'en i stykker.

12
Generel Elektronik / Sv: Hjælp til lysdiode
« Dato: Juni 02, 2016, 02:24:27 »
Er du sikker på at det er en 238 ohm modstand? Jeg vil umiddelbart tro at den er på noget mere. Det skyldes at en lysdiode skal strømbegrænses, så den ikke brænder af. Selv dioder af samme type kan have forskellige spændinger, dog har de ens strøm. En rød diode vil normalt have en spænding på  ca. 2V. Dog skal strømen begrænses, altså med eksempelvis en modstand. Strømen der går gennem en sådanne diode vil nok cirka ligge på 20mA.

Modstanden der skal strømbegrænse skal altså umiddelbart være (12V / 20mA)=600ohm . Er det dog en 238ohm's modstand så går der altså cirka 0,05A ampære gennem den, hvilket giver 0,1W til dioden.

Jeg tror at du kan bruge en hvilken som helst rød diode. Du skal bare være sikker på at den er lavet til en strøm på ca. 0,05A.

13
Generel Elektronik / Sv: data logning af tryk
« Dato: Maj 23, 2016, 15:25:33 »
Der kan kobles 6 trykfølere til, da der er 6 analoge indgange på arduino uno'en.  ;D

14
Generel Elektronik / Sv: data logning af tryk
« Dato: Maj 23, 2016, 00:50:24 »
Der skulle være alt du skulle bruge for at komme i gang  ;).

Du skal selvfølgelig programmere den. Det skal du gøre gennem arduino ide(link til download:https://www.arduino.cc/en/Main/Software).  Under Fil-->eksempler-->SD ligger der et eksempel der hedder Datalogger. Denne logger for 3 analoge indgang(A0, A1 og A2), hvilket dog let kan ændres. Dette eksempel starter med at logge næsten samtidigt med at der tilsluttes strøm. Den logger det så bare til en .txt fil på SD-kortet.

Du kan give arduino'en strøm på to måder:
- Gennem usb hvilket er lettest, dog kun 5v!
- Gennem det runde stik. Her kan der tages op til 20v, hvilket ikke kan anbefales. 12V skulle dog fungere fint  :). Husk at det midterste ben i det runde stik er til positiv, mens det ydre er negativt/grund.

15
Generel Elektronik / Sv: data logning af tryk
« Dato: Maj 22, 2016, 19:30:29 »
Du skulle kunne nøjes med det her: http://www.ebay.com/cln/danne2169-azace0ay/def/301294419014. Husk hvis du køber 2 af disse sensorer, så skal du ikke købe dem samtidige. Vent en dag eller 2 med at købe stk nummer 2. Herved kommer du under de 80kr., hvorved du slipper for importgebyr mm.

Sider: [1] 2