Using tabs to organize code with the Arduino IDE

Поділитися
Вставка
  • Опубліковано 23 кві 2022
  • 🤩 FREE Arduino Crash Course 👇👇
    bit.ly/get_Arduino_skills
    ✅ Sign up to get $100 on NextPCB: www.nextpcb.com/register?code...
    ✅ $0 for 1-4 layers PCBs: www.nextpcb.com/pcb-quote?act...
    ✅ PCB Assembly capabilities info:
    www.nextpcb.com/pcb-assembly-...
    **Want to learn more? Check out our courses!**
    bit.ly/3vJ80um
    Arduino Sketch Build Process Website:
    arduino.github.io/arduino-cli...
    **Get the code, transcript, challenges, etc for this lesson on our website**
    bit.ly/3EFdfix
    **We designed this circuit board for beginners!**
    Kit-On-A-Shield: amzn.to/3lfWClU
    SHOP OUR FAVORITE STUFF! (affiliate links)
    ---------------------------------------------------
    We use Rev Captions for our subtitles
    bit.ly/39trLeB
    Arduino UNO R3:
    Amazon: amzn.to/37eP4ra
    Budget Arduino Kits:
    Amazon:amzn.to/3C0VqsH
    Multimeter Options:
    Amazon: amzn.to/3rRo3E0
    Helping Hands:
    Amazon: amzn.to/3C8IYXZ
    Soldering Stations:
    Amazon: amzn.to/2VawmP4
    AFFILIATES & REFERRALS
    ---------------------------------------------------
    ►Audible Plus Free trial: amzn.to/3j5IGrV
    ►Get LastPass: lastpass.wo8g.net/b3N1vk
    ►Join Honey- Save Money bit.ly/3xmj7rH
    ►Download Glasswire for Free:bit.ly/3iv1fql
    FOLLOW US ELSEWHERE
    ---------------------------------------------------
    Facebook: / programmingelectronics...
    Twitter: / progelecacademy
    Website: www.programmingelectronics.com/
    ________________________________
    Did you know in the Arduino IDE that you can organize your code using different tabs? In this lesson, you’re gonna learn how to add these tabs, how they get organized in the Arduino sketch folder and how to use them in order to better organize your code. Stay tuned. Before we get started, if you wouldn’t mind subscribing to the channel, it really helps us bring you the best content. It doesn’t cost you anything but a click and it allows us to keep doing this. All right, so here we are in the Arduino IDE. I’ve got a program open. It’s called Tabbatha and I have got a sketch written out. So, let me just familiarize you with the sketch so you kind of get an idea what’s going on. So I’ve got some neopixels. Those are individually addressable LEDs. It’s like an individually addressable LED strip. You’ve probably seen ’em around. Really cool looking. And I’ve using this library called fastLED to control them. And I’ve got some variables here that set up the number of pins and which data pin I’m using and and a array to store the different LEDs that I’m in. Okay, and then I have some functions that do some different things. So one is setting them all the LEDs red. Then one sets ’em all blue, one sets ’em all green but it uses this little fadeall function in here that kind of makes it interesting. And I also have that function right here, fadeall. So I’ve got four functions and then below that I have my setup in my loop. So in setup, you know just start serial communication and then I’m just initializing some stuff for that fastLED library. Nothing crazy going on in setup. And then loop, all I’m doing is I’m calling these three functions: setRed, setBlue and setGreen. Okay, so what I wanna do is I wanna you know there’s a lot kind of, I don’t know, going on in here. Maybe I wanna like reduce the clutter in here and let’s say I wanna put each one of these functions in its own file, in its own tab. All right, so all of the files that you create in Arduino are gonna live in the Arduino Sketchbook folder. And you can figure out where your Sketchbook folder is by going to if you’re on a Mac, you’d go to Arduino Preferences or if you’re on a PC, I think it’s File Preferences. And the first thing they show is your Sketchbook location. So the location of my Sketchbook folder is under my name, my documents, and then in a folder Arduino. And then I have saved Tabbatha somewhere inside this folder. So I’m gonna go ahead and open that up. All right, so here is the folder Tabbatha and you’ll notice I’ve got a .eno
    CONTINUED...
    bit.ly/3EFdfix
    **About Us:**
    This Arduino lesson was created by Programming Electronics Academy. We are an online education company that seeks to help people learn about electronics and programming through the ubiquitous Arduino development board.
    **We have no affiliation whatsoever with Arduino LLC, other than we think they are cool.**

КОМЕНТАРІ • 155

  • @burnermaster5375
    @burnermaster5375 2 роки тому +10

    You had me at FastLED LOL. And now I'm clear on tabs, prototypes and preprocessing. Another great tutorial, thank you!

  • @slucas601
    @slucas601 2 роки тому +3

    I chuckled to my self when you pulled out that 'TabbaDabba'. Thanks for helping us stay a little more organized.

    • @programmingelectronics
      @programmingelectronics  2 роки тому +2

      Thanks for the note Shawn! I try not to take myself too seriously and have some fun occasionally :)

  • @EFoxVN
    @EFoxVN Рік тому +1

    Thanks a lot for this! I have been coding Arduino for a while, and I didn't know about this! I guess this is what they call modular programming. It helps a lot to break things up in smaller, digestible pieces.

  • @PixelSchnitzel
    @PixelSchnitzel 2 місяці тому +1

    I've been banging my head on the keyboard for a couple days trying to figure this out. I watched several videos that didn't help. THANK YOU!!! It's so much simpler than I thought.

  • @keith726able
    @keith726able 2 роки тому +10

    I like it! This will make long sketches more manageable and easier to debug. I have an old non-Arduino program that I will rewrite as a sketch - it's 400 lines long. I'll use tabs.

    • @programmingelectronics
      @programmingelectronics  2 роки тому +3

      Very cool Keith! I feel like I rediscover this feature every so often and then get excited to use it again :)

    • @yashaswikulshreshtha1588
      @yashaswikulshreshtha1588 2 роки тому

      @@programmingelectronics Hey I was wondering if you could tell if I can use Pre Processors to eliminate inter-dependencies of files which have classes in it. I would really appreciate if you can tell me something about it.
      Thank you so much for making these videos, it has really helped a lot.

  • @warrenscorner
    @warrenscorner 2 роки тому +1

    Awesome video! This will make my sketches so much better. Thank you.

  • @horacioventurino7497
    @horacioventurino7497 2 роки тому +2

    Very good instructive video. Clear and useful for the daily practice. Thank you!

    • @programmingelectronics
      @programmingelectronics  2 роки тому

      Thanks so much for watching - really appreciate the comment! We'll do our best to keep them coming...

  • @jeremiahradoc2453
    @jeremiahradoc2453 Рік тому +1

    I was looking for a video on how multiple sketches would work with each other inside a single folder and this really help

  • @N00General
    @N00General Рік тому

    Very clear, thank you for your efforts.
    When you named the first tab, I thought that you said "Your mama", I got seriously shocked for a moment 😂😂😂

  • @arduino-tuto
    @arduino-tuto 6 місяців тому +2

    Excellent content, Keep up the good work!

  • @jon_raymond
    @jon_raymond 2 роки тому +9

    Great and clear video! For my tabs I normally prefix them with 01, 02, 03 so I can sort them with the flow that I want instead of alphabetically.

    • @programmingelectronics
      @programmingelectronics  2 роки тому

      Great tip Jon - Thanks for sharing!

    • @tangocharlie5509
      @tangocharlie5509 2 роки тому +1

      Test_WemosD1mini:501:6: error: expected unqualified-id before numeric constant
      501 | void 3countSTARTUP();
      1 or 01 prefix trigger an error, good tips but it doesn't seem to work on IDE1.8.19....! Must use letter prefix like: void A_myfunction();

    • @programmingelectronics
      @programmingelectronics  2 роки тому +2

      @Tango charlie I _think_ the issue you are having is that you cannot start function names with a number. Otherwise you'll be fine.

    • @yashaswikulshreshtha1588
      @yashaswikulshreshtha1588 2 роки тому +1

      @@programmingelectronics Hey, I am wondering why is that we cannot use numbers in functions /names? Because I guess today compilers are advanced enough to differentiate between functions and stuff right?

    • @programmingelectronics
      @programmingelectronics  2 роки тому

      @@yashaswikulshreshtha1588 That is a great question! I am not sure of the answer.

  • @raymondmichael4987
    @raymondmichael4987 2 роки тому +1

    So excited, I comment first.
    I really hunger for this, didn't wrap my head around it first time, hopefully this time I'll due to my trust in your teachings. Because of your awesome teaching I ditched using delays despite it being a difficult habit to leave.
    Greetings from Tanzania 🇹🇿
    With "Royal Tour" :)

  • @waldo9487
    @waldo9487 2 роки тому +2

    This is so easy to understand.
    I can program Visual Basic but I'm a newbie to Arduino, and this allows me to modularise my code like VB.

  • @altitude1039
    @altitude1039 2 роки тому +1

    OmG
    Thanks for posting this, helped me a ton!

  • @alexclarosfernandez8467
    @alexclarosfernandez8467 3 місяці тому

    Great insight!!!! Thanx a lot.

  • @bernym4047
    @bernym4047 Рік тому +1

    A large sketch will require lots of scrolling. This is a neat solution and makes life easier. Thanks.

  • @KW-ei3pi
    @KW-ei3pi 11 місяців тому

    Awesome. Thanks!

  • @warlord336
    @warlord336 Рік тому +1

    Thanks a lot, this helped me a lot so I can finally continue

  • @HollyHertig
    @HollyHertig 6 місяців тому

    Thank you!

  • @hassan_ksu
    @hassan_ksu Рік тому

    Easy to follow. Great video

  • @andrewbernard4288
    @andrewbernard4288 2 роки тому +1

    Thanks for the explanation it's clear and easy to understand and alleviate my problem how to deal with massive code in arduino.

  • @brucesmith9144
    @brucesmith9144 2 роки тому +6

    Cool demonstration. This is a better approach to writing functions for your sketches. It will minimize scrolling to writing code blocks in one file and improve the writing process.

    • @programmingelectronics
      @programmingelectronics  2 роки тому +1

      Thanks Bruce! I agree I think it can help quite a bit to reduce a bunch of scrolling up and down a long sketch.

    • @brucesmith9144
      @brucesmith9144 2 роки тому +1

      @@programmingelectronics one wastes a lot of time scrolling searching for code. Now just click on the tab.

    • @programmingelectronics
      @programmingelectronics  2 роки тому +1

      I know I do!

  • @Cfbrolley1320
    @Cfbrolley1320 2 місяці тому +1

    Fantastic tutorial, thank you!

  • @rtalbot87
    @rtalbot87 Рік тому +1

    EXTREMELY useful. Thank you. Yet to try it, but sure looking forward to making my code easier to read.

    • @programmingelectronics
      @programmingelectronics  Рік тому

      Great! Thanks so much!

    • @rtalbot87
      @rtalbot87 Рік тому

      @@programmingelectronics Unfortunately, Tab is not without its own issues, I am finding. Seems to add another level to debug unless the content of the tab is very simple. As ever, tenacity is required

  • @tonymai124
    @tonymai124 2 роки тому +1

    so good so far, you did for me, thank alot

  • @rcraig8667
    @rcraig8667 7 місяців тому +1

    Very helpful as i am just getting to splitting up larger files and searching the Arduino was not producing applicable results. Your video was clear and consise..

  • @mohammadrezafarshad3994
    @mohammadrezafarshad3994 2 роки тому +1

    Thank you. Useful stuff.

  • @Milo_korogon
    @Milo_korogon Місяць тому +1

    Thanks you it's what i was looking for to simplify my code.🙏

  • @programmingelectronics
    @programmingelectronics  2 роки тому +4

    There was a question about if you could set up tabs, so that the functions could be used in other programs - and update in all the programs when the tab was updated - like a library (The comment disappeared when I was attempting to reply - my bad!).
    This would be really pretty cool, but unfortunately it wouldn't work. You'd need to have copies of that .ino file in every sketch folder where you wanted to use it , and then every one of the files would need updated if you made changes. In that case, setting it up like a library would be the way to go.

  • @wilmercb
    @wilmercb 2 роки тому +1

    Thanks for this tutorial, is kinda the concept of "MVC/MVVM" Controller structure for organizing code in iOS/Swift ...this is the way for any Object Oriented Programming ;) ...I like so much your teaching skills and I hope you would be the one starting teaching Swift and Arduino with the SwiftIO board architecture 🙏🏼

  • @avejst
    @avejst 2 роки тому +2

    Great walkthrough of the process
    Thanks for sharing your experiences with all of us :-)

    • @programmingelectronics
      @programmingelectronics  2 роки тому +1

      Thanks a ton for the note and for watching!

    • @avejst
      @avejst 2 роки тому +1

      @@programmingelectronics Any time 🙂

  • @sandwon
    @sandwon 2 роки тому +1

    Great info. I am a Subscriber now. I will label my tabs A=green b=red c=blue Thanks 👍

  • @richardfurniss8091
    @richardfurniss8091 2 роки тому +1

    Cool, that is going to be very useful, for robotics I can place different routines in different tabs

  • @joshuagilbert3804
    @joshuagilbert3804 2 роки тому +1

    LOVE it!!

  • @DaveKnepper-wf1wo
    @DaveKnepper-wf1wo Рік тому +1

    Thanks for clearing that up. I was assuming the tabs were all separate...but the compiler kept saying otherwise...LoL. Anyways, thanks again.

  • @Bianchi77
    @Bianchi77 2 роки тому +1

    Creative video, thanks for sharing :)

  • @futurereality6514
    @futurereality6514 7 місяців тому +1

    great Explanation

  • @shingabiss
    @shingabiss Рік тому

    Excellently presented content!

    • @programmingelectronics
      @programmingelectronics  Рік тому

      Thanks Scott!

    • @shingabiss
      @shingabiss Рік тому

      The tabs were kind of a mystery, having come from a mostly Visual Studio background. My first experience with the Arduino IDE was 3d printing related, working with the .h files for configuring Marlin code. Nice to understand they are like pages essentially. I'm starting to use them now. Thanks.

  • @christopherleadholm6677
    @christopherleadholm6677 2 роки тому +1

    Great stuff for the new(er) people!

  • @digitalradiohacker
    @digitalradiohacker 2 роки тому +2

    I have struggled with this for a couple of weeks:
    A previously working sketch threw hundreds of errors when split into tabs.
    My problem was that I appear to have fallen into the "rare cases" category, and had to manually add the prototypes up near my includes.
    Subscribed.

  • @gsrathore97x
    @gsrathore97x 2 роки тому

    Your videos is amazing sir .👍👍👍Please make more videos on this topic with complex examples and operations.

  • @KeffelewAssefa
    @KeffelewAssefa 6 місяців тому +1

    Thank you.

  • @Tony770jr
    @Tony770jr 2 роки тому +1

    Good tip!

  • @cloviscareca
    @cloviscareca 10 місяців тому +1

    This is the best video of subject

  • @hughatkins
    @hughatkins 2 роки тому +1

    Thanks for that video. I have a friends sketch, and was having a hard time reading it. Not now!

  • @donaldjohnson394
    @donaldjohnson394 Рік тому +1

    Excellent! I've wanted to know what this was and how it was done. Older 3D printers that used Marlin firmware used to have all those tabs.

  • @diegoveron996
    @diegoveron996 Рік тому +1

    gracias !!

  • @valentinsumalinog6458
    @valentinsumalinog6458 Рік тому

    Very nice tutorial..

  • @StevePotter
    @StevePotter 2 роки тому +1

    Very clear and helpful explanation of how to make a big sketch more manageable. Can you do one on how to then migrate those multi-tab sketches from Arduino IDE to Platform IO?

  • @ismaelconstantino
    @ismaelconstantino 2 місяці тому +1

    Thank you...! if the function has parameters, what do the tabs look like?

  • @RATANAGARWALITINFORMER
    @RATANAGARWALITINFORMER 2 роки тому +1

    Good info

  • @flickmew99
    @flickmew99 Рік тому +1

    I'm new to programming in general, but I have read something about organizing our program. Help, I have questions :
    1. since it works in alphabetically order, do we have to adjust the filename according to the program order (following which function come first in the source code) ?
    2. what's the difference of calling function from this Tab method, and calling function from library/class (if I make a new file as a library) ?
    Thank you very much for your clear and comprehensive tutorial, BTW

  • @paulbarrett1372
    @paulbarrett1372 2 роки тому +4

    I have been hoping someone would explain the tabs Thank you so much!! would you mind also touching on local and global variables in the tabs with public and private, I am trying to understand this part of the tabs Thank you again for all your help !!

    • @programmingelectronics
      @programmingelectronics  2 роки тому

      Great! Glad it helped Paul! I’ll see what we can come up with to address that question!

  • @duartecancela
    @duartecancela Рік тому

    Can we define variables also in separeted tab? Along with related functions?

  • @mariaviklund4546
    @mariaviklund4546 Місяць тому

    I wanna use line numbers and Goto's!! I wish there was a Basic IDE for Arduinos. My brain hates curly brackets.

  • @mradulbhardwaj3147
    @mradulbhardwaj3147 Рік тому +2

    Can we define variables in those tabs ??

  • @brettvillar5346
    @brettvillar5346 Рік тому +1

    Great explanation! Will this also work the same in the web editor?

  • @briancoode4071
    @briancoode4071 11 місяців тому

    This explains what I really wanted to know. Why do other UA-cams make it so complicated? Thanks

  • @vipalsharma4120
    @vipalsharma4120 Рік тому

    How to decide board reading.ino file esp8266 or esp8266-01,in my case Generics esp8266 board error

  • @user-zy2kh2rp4m
    @user-zy2kh2rp4m Рік тому +1

    Hello sir, I have a code for ws2812b led which has 12 effects change by push button. But when i off and on it again it's start from frist effect. I I want that when I turn it on it should be on the same last effect on which it was turned off. Please help me 🙏🙏

  • @0miker0
    @0miker0 2 роки тому +1

    Can your functions all go after Loop instead of before setup?

    • @programmingelectronics
      @programmingelectronics  2 роки тому

      Great question! Yes they can. We did a previous video on organizing code that talks about adding function prototypes prior to setup if you go that route which a lot of folks prefer.

  • @tanleproe
    @tanleproe 2 роки тому +1

    I like it, especially the file name. How do you spell 'Tabatha'. So funny.

  • @hitechhuckleberry3678
    @hitechhuckleberry3678 2 роки тому

    at 1:40 can someone explain line 52 interms of c++? I didn't understand it.

  • @knightdeluxegaming
    @knightdeluxegaming 2 роки тому +2

    I hope you can make a tutorial also about creating cpp and header file inside one file thanks

  • @raymondmichael4987
    @raymondmichael4987 2 роки тому +1

    Mmnh 🤔, second comment after watching, this is helpful as in "good to know" but not what I hunger for.
    Please create another tutorial on using header files (.h), just like classes

  • @pavansai3602
    @pavansai3602 2 роки тому

    Hello could you please help me out with this error
    Arduino: 1.8.19 (Mac OS X), Board: "ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"
    exec: "python": executable file not found in $PATH
    Error compiling for board ESP32 Dev Module.
    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.

  • @jeffschroeder4805
    @jeffschroeder4805 2 роки тому +1

    Is there a precedent for putting a library in a tab? I seem to recall seeing someone referring back and forth to a library to ensure they had the correct spelling or syntax. Using a tab made that very quick and easy?

    • @programmingelectronics
      @programmingelectronics  2 роки тому

      Great question Jeff! To be perfectly honest I am not sure if there is a precedent/convention on that or not, but I could see it being handy for sure.
      Side note, I believe in order to open a .h or .cpp file in the Arduino IDE, those files would need to be in the sketch folder associated with sketch, and not in the libraries folder where libraries typically reside.

    • @jeffschroeder4805
      @jeffschroeder4805 2 роки тому

      @@programmingelectronics Including the version of the library you used directly in your sketch folder would probably avoid conflicts resulting from later changes or upgrades to the libraries maintained in your Documents folder.

    • @grahamdooley5144
      @grahamdooley5144 Рік тому

      @@jeffschroeder4805 I had exactly the same question Jeff. But I wouldn't want to have to place a copy of a library (.h or .cpp) in the sketch folder using it - just a link would be preferable (unless you really wanted to include a local copy of a version of that library for some reason). An even better way would simply be to tell the IDE in some way to just display the library code (.cpp and/or .h) as a tab within that sketch (but not to concatenate the source code to it). What I currently do if I want to readily refer to an included library while writing a sketch that uses it is to open the library source file in a Notepad++ window.

  • @jumadhaheri
    @jumadhaheri 2 роки тому +1

    Well, my 3.3k lines of code now is 16 tabs this is fantastic , how to deal with long large arrays ? Do you make an .h tab ?

    • @jumadhaheri
      @jumadhaheri 2 роки тому +1

      Ok I think I got it , now I have 23 tabs 😅

    • @programmingelectronics
      @programmingelectronics  2 роки тому +1

      You might need tabs for your tabs :)

    • @programmingelectronics
      @programmingelectronics  2 роки тому +1

      I don’t think you can add .h tabs (though I could be wrong). I believe you’d have to create the header file and save it as a .h in the same sketch folder.

  • @agamersdiary1622
    @agamersdiary1622 2 роки тому +1

    What is the benefit of instead having .h and .cpp files?

    • @programmingelectronics
      @programmingelectronics  2 роки тому

      I’ve wondered that myself. I’m thinking it’s easier than having to write out include guards, plus, you can’t open .h files in the IDE.

    • @agamersdiary1622
      @agamersdiary1622 2 роки тому +1

      @@programmingelectronics for me it works to create a .h file with "new tab" 🤔

    • @programmingelectronics
      @programmingelectronics  2 роки тому

      @@agamersdiary1622 You're Right!!!🤩Thanks! For seem reason I seem to recall NOT being able to do that.

  • @Skibosski
    @Skibosski 3 місяці тому

    😮 my momma? Reported!!! ... p.s Love the vids and content!! ❤

  • @davepodolske5646
    @davepodolske5646 Рік тому

    It would be really cool if the IDE didn't have to recompile everything when only the contents of one tab changed .

  • @sallydrew1621
    @sallydrew1621 10 місяців тому

    The 'LIKE' button has gone!

  • @TheHEALER1984
    @TheHEALER1984 Рік тому +1

    Hi to all. I have problem in coding because I don't have enough knowledge. If any of you is interested , I can explain my problem and send my code that I already have . Thanks

    • @programmingelectronics
      @programmingelectronics  Рік тому +1

      You're welcome to post your code here - or the part that might be giving you an error, or the error message. Best of luck!

  • @BlondieSL
    @BlondieSL Рік тому

    Tabs are wonderful for organizing big projects. I honestly usually forget to use them as I'm coding. LOL
    One thing for those new to coding is to remember is that if you create a tab (function) and it references a variable from the main code, that var must either be GLOBAL or you could pass a "LOCAL" to the function and have the function use its own LOCAL vars.
    So if, during compiling, you get an error message about a var not being declared, pointing to a tab(s), this is why.

  • @damienclark7163
    @damienclark7163 2 роки тому +1

    Clicked lol

  • @chrisw1462
    @chrisw1462 2 роки тому +1

    It is a great feature, but the UI for it is horrendous! The option is on the top right under a tiny button, instead of in the main menus?? (I won't even talk about THOSE... what a mess!) Then instead of a pop up dialog, you enter the new name in a field at the BOTTOM of the screen??? Come on, Arduino, hire someone with common sense to FIX your User Inteface.

  • @abhishekkumarbhaugeeruthy8884
    @abhishekkumarbhaugeeruthy8884 9 місяців тому

    your mama🤣🤣🤣🤣