Questions tagged [code-optimization]

The process of improving the efficiency of a program such that is uses less memory and/or less computational time.

Filter by
Sorted by
Tagged with
0
votes
1answer
1k views

Is it possible to pass HIGH and LOW values as parameter in a function?

I've created the following function: void runMotor(int _dir, int _step, int wait){ digitalWrite(_dir, HIGH); for (int x = 0; x < 3200; x++) { digitalWrite(_step, HIGH); ...
1
vote
1answer
123 views

Code Optimisation [closed]

I have tried fading the RGB Led with different colour format and sequence. Working of Code :- When value of number is 1, the Red LED fades gradually and glow up with the delay interval of 10ms with ...
2
votes
1answer
1k views

Results for GP2Y1010AU0F Dust Sensor

I am using Dust Sensor GP2Y1010AU0F I downloaded the code from the manufacturer here: http://www.waveshare.com/wiki/Dust_Sensor /**********************************************************************...
1
vote
1answer
55 views

ble_write slows down my sketch causing problems (Blend Micro & NRF8001)

I'm working on a prototype which uses the RedBearLabs Blend Micro with the NSC's nrf8001 ble chip, but have ran into a problem that I'm not sure how to solve. I have two tactile buttons connected to ...
1
vote
1answer
226 views

Help avoiding floating point math

I'm using a Texas Instruments DRV2605 haptic controller in my project to drive a LRA vibration motor. I would like to calculate the LRA rated voltage during run time using the formula below as ...
0
votes
3answers
15k views

How do I repeat a piece of code

For a school assignment I need to make a LED blink on/of 3 times then stop. Now I have come up with the following code: I think it's ''clean'' enough for what it has to do, but I have a feeling that ...
2
votes
3answers
262 views

A more elegant way to deal with timers without using delay()?

I am looking for a more elegant way to write a function that performs timer-based tasks as in the case of the code below, which essentially collects 5 sample values from a microphone module over a ...
0
votes
1answer
626 views

Faster and lighter approximate timing code without using timer

I want to use loop() iterations counter to execute some tasks periodically or tasks like debouncing. My other sketch is running every loop() at least 20 ms, and if i am using 5 ms time to wait to ...
3
votes
1answer
1k views

OOP vs procedural programming on arduino

It seems like the majority of Arduino applications are written without using classes / objects. Is there a reason for this? Does is slow down the Arduino or somehow present undesirable behavior?
4
votes
3answers
2k views

Set EEPROM from PC before program

I have been working on an arduino program, which has gotten rather large. I am close to hitting the 32k limit on Flash for my ATmega328p. I would like lower my program size by saving some of my many ...
5
votes
2answers
469 views

What is the proper way to implement PID?

I'm having some trouble conceptualizing how to go about implementing PID into my drone. There are a few ways I'm thinking about implementing the pipeline: Having one PID Object for each of the six ...
2
votes
3answers
5k views

Storing an array of function pointers

I have some Arduino code that looks like: char packet = ser.read(); switch(packet){ case 'a': someobj.somefunc(); break; case 'b': otherobj.otherfunc(); ...
0
votes
2answers
62 views

Interrupt numbering

I'm using an Arduino Mega and four of its interrupts. Each interrupt is only used to start/stop a timer, depending if it's rising or falling, so effectively runs the same function. Does anyone know if ...
0
votes
4answers
72 views

Refactor to save bytes?

I'm a painful 128 bytes of my max for this Trinket. Any refactoring I could do to get down the size? #include <Adafruit_NeoPixel.h> #include <Wire.h> #include <RTClib.h> #define ...
2
votes
2answers
331 views

Possible to condense this if statement?

I have this if statement: if (now.hour() == 5 && now.minute() == 10 && now.second() == 0 && now.dayOfTheWeek() != 1 && now.dayOfTheWeek() != 7){ Is there a way to ...
0
votes
1answer
182 views

How would I refactor this code, given how similar most of the lines are?

I have a set of buttons and a set of NeoPixel LEDs. There's lots of very similar constants (button1pin, button2pin, etc) so there's almost certainly a more efficient way of coding this. Any ideas? #...
0
votes
4answers
214 views

Can I short this code?

int r = 12; int g = 11; int b = 10; int sw = 4; int x; int c = 0; void setup() { pinMode(r, OUTPUT); pinMode(g, OUTPUT); pinMode(b, OUTPUT); pinMode(sw, INPUT); pinMode(13, OUTPUT)...
0
votes
2answers
4k views

Convert uint8_t array to ascii character for serial transmission

I am trying to send packets of via bluetooth data that include 6 bytes read from a sensor and stored in a uint8_t array. Instead of sending over the data as numerical digital, I would like to send the ...
2
votes
2answers
144 views

Port Manipulation - fastest implementation

I'm working on an Arduino program but am getting bogged down on what is the 'correct' implementation. I understand that multiple versions may work, so for my needs the 'correct' version will be the ...
-3
votes
1answer
135 views

How do I learn C? (was Computer project) [closed]

Can you help me writing a code for this question guys?? You have an Arduino Uno with 8 LEDs connected to digital pins 2 to 9. Create an array of 8 elements. Fill it with random numbers between 2 and 9 ...
1
vote
2answers
416 views

Digital Vs. Analog Sensor

Background: I'm using an Atmega1284P to add sensors to an off road racing truck onto a CANBUS network. The standard automotive sensors are thermistors, but the Dallas 1 wire temp sensors (DS18B20) ...
4
votes
2answers
195 views

Problem with inaccurate delays between sensor readings

During the last two months I have been working on a project that consists of using a Seeeduino Stalker V2.3, two AM2305 sensors, a TSL2561 sensor, an HC-05 XBee module, a 1,800 mAh 3.7V LiPo, a 7 cm x ...
0
votes
2answers
340 views

How to prevent inclusion of unnecessary libraries?

How do you save space by preventing the inclusion of unnecessary binaries? When I compiled the ROS Blink example, I received the warning: Global variables use 1,951 bytes (76%) of dynamic memory, ...
4
votes
4answers
21k views

What is better: one sprintf() or multiple strcat() and itoa()?

I was creating Arduino function which sends two int and additional chars between them and at the beginning and end of char array - then print that array to the serial port in almost real time. (For ...
1
vote
1answer
1k views

Arduino Due SPI speed reduction

I need to reduce the SPI clock speed of the Arduino Due down to about 100 kHz. Unfortunately my hardware doesn't support higher speeds. With the current maximum divider of 255, I can only reach a ...
2
votes
2answers
1k views

How do I set a constant in setup() that I can use in loop()?

I am new with coding, and I was wondering how I could run something once and define it as a constant. Here is my code: int sensorValue1 = analogRead(A0); int sensorValue2 = analogRead(A1); int g0 ...
0
votes
3answers
1k views

Arduino: how can I stop while() when bluetooth send a data?

I have learned Arduino for a month, and I want to bulid a car with 2 modes, Remote and Auto. Auto mode needs to have while() loop, so it can receive data from sensors. When I choose Auto mode via ...
0
votes
1answer
1k views

Using for loop to set pinMode

I notice problems with my output pins when I use this method of setting their pinMode: int allOutputPins[] = {3, 4, 9, 10, 5, A3, 11, 12, 7, 8, A1, A2}; for(int a = 0; a < sizeof(allOutputPins); ...
0
votes
3answers
305 views

How to store IR data needed for AC controll in less space?

I'm trying to controll an AC unit but the issue is space - right now, I store the data like this: consts PROGMEM unsigned int Signal_Heat_Fan0_Temp30[] = {233,636,17884,3032,8944,500,496,492,1496,524,...
1
vote
3answers
2k views

Are static variables in a function bad?

For my code I use a couple of static variables. But when I search the internet, they seem "evil". For example: I have a function which will be executed every loop (5ms looptime). to increase the ...
-1
votes
2answers
1k views

SD Library writing char in a file

I'm trying to write into a file using this code from the example of the library: String dataString = ""; int sensor = 0; dataString += String(sensor); dataString += ","; sensor +=1; File dataFile = ...
0
votes
3answers
83 views

Simple question about && vs ||

I want to skip all '\r' and '\n' chars and I have IF statment: char c = Serial.read(); if (c != '\r' || c != '\n') { // <- This line interesting mAnswer[mAnswerLength] = c; mAnswerLength++; ...
1
vote
2answers
9k views

How to read code from Arduino Uno to Arduino IDE? [duplicate]

we can upload a code into Arduino UNO from our computers, but how about reading code? Can we read and get C codes from compiled codes from Arduino hardwares? My second question is that will we read ...
1
vote
2answers
222 views

Light sensor acting up when used with other code

I have a light sensor that works fine and outputs the correct data to the serial monitor when I only upload the following code to the nano: const int lightSensorPin = A0; int lightSensorValue = 0; ...
1
vote
1answer
40 views

How to int variables with similar names without tons of code? [duplicate]

I'm using int with 14 LEDs to specify pins, but I don't want to use int 14 times, like this: int led1 = 2; int led2 = 3; int led3 = 4; int led4 = 5; int led5 = 6; int led6 = 7; int led7 = 8; int led8 ...
3
votes
1answer
127 views

Cleaning up code? Removing repetition?

I am using Adafruit motor shield, I am running multiple DC motors for different amounts of time, but to start at the same time - I have researched that to do this I have to monitor the elapsed time of ...
0
votes
1answer
174 views

Shortening large chunks of code

Some of the code that I have is unbearably long and drives me insane. I don't know if there were simpler ways to doing what I am doing. long turn1; long turn2; long turn3; long turn4; long turn5; ...
9
votes
1answer
676 views

Overview of compiled code size

When I compile my code, the Arduino IDE returns the binary sketch size in byte. Is there a good way to find out (approximately) what function or what part of my code takes up how much memory in ...
0
votes
2answers
2k views

Program button to switch between two values

There is a function on one of my programs I want to be switch on and off by pressing a button. The button is unbiased otherwise I would set the function to read the button's status of HIGH or LOW. So ...
0
votes
1answer
699 views

Control arduino with keybaord via computer

I'm brand new to arduino but I'm trying to figure out how to set up a WASD steering system for my robot I made. I have the physical setup all ready but I don't know the code to use that would allow ...
0
votes
1answer
83 views

Sweep with two shift registers

I am working with 8 dual color LED's and 2 shift registers. My connections are in place. But I do not understand how to work with 2 shift registers. So I am trying to make this: turn the first led on,...
0
votes
2answers
388 views

releasing memory in sub-function

I'm doing a program who get a line from the SD and shows it, this function is called getData() FULL CODE: #include <SD.h> #include <MemoryFree.h> File myFile; int stringIndex = 0; int ...
5
votes
1answer
2k views

How to enable maximum Dead Code Removal?

I am running out of code and data memory space on ATMega328P. Code size is big as I used several libraries, but, I only use a few functions of those library. Apparently, the default IDE is only ...
1
vote
3answers
283 views

What is the simplest way to “ask” the arduino which input pins are HIGH?

I am trying to build a 36-line cable tester, using the Digistump DigiX (99 i/o pins). Digital pins 0-35 are outputs, connected via the cable in question, to (in a perfect world) digital input pins 36-...
18
votes
4answers
130k views

How can I declare an array of variable size (Globally)

I'd like to make three arrays of the same length. According to the documentation, Arrays must be defined as int myArray[10]; where 10 can be substituted for a known length (another integer), or filled ...
1
vote
2answers
155 views

Questions on programming logic?

So I am learning arduino code by going through examples and playing with them, and I came across something interesting. I am not fluent in any coding language but I am fully familiarized with computer ...
6
votes
4answers
2k views

What's the most efficient implementation of map(x,0,1023,50,250)?

I recently noticed how the map() function in Arduino was bulky in both terms of flash space used and time taken to execute, largely because it deals with long and involves a division and ...