Using tabs to organize code with the Arduino IDE

Поділитися
Вставка
  • Опубліковано 27 гру 2024

КОМЕНТАРІ • 171

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

    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 :)

  • @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!

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

    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.

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

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

  • @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

  • @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.

  • @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.

  • @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 😂😂😂

  • @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.

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

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

  • @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.

  • @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.

  • @robertorusso3192
    @robertorusso3192 12 днів тому +1

    Very good way to organize complex sketch structures! Thanks

  • @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" :)

  • @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!

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

    Excellent content, Keep up the good work!

  • @flickmew99
    @flickmew99 2 роки тому +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

  • @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

  • @rcraig8667
    @rcraig8667 Рік тому +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..

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

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

  • @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 🙏🏼

  • @Orcanian66
    @Orcanian66 5 місяців тому +1

    Great video reminds me of the JSR instruction in RSLogix (jump to subroutine). Thank you for sharing.

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

    Thank you for pointing out this helpful feature. Does it appear to have an impact on compile times that you can tell?

  • @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.

  • @donaldjohnson394
    @donaldjohnson394 2 роки тому +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.

  • @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.

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

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

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

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

  • @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...

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

    OmG
    Thanks for posting this, helped me a ton!

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

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

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

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

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

    Can we define variables in those tabs ??

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

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

  • @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 🙂

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

    Great stuff for the new(er) people!

  • @Lee-fn4qu
    @Lee-fn4qu 2 місяці тому +1

    You explain so well, thank you!

  • @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.

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

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

  • @dammitZeva
    @dammitZeva 5 місяців тому

    Very useful! Thanks. I wish that Visual Studio had the same. With VS you can create 'Regions' which does help but this tab thing is better. I make classes in VS but it's less convenient to use than these tabs.

  • @Arucaneii
    @Arucaneii 2 місяці тому

    Whats the difference between making a library and this?
    When I was looking for a solution like this I came across making a .cpp file and .h to make a library but this seems so much easier
    So I was wondering what differences they had and why you would choose one over the other

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

    Fantastic tutorial, thank you!

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

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

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

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

  • @bryansmith1303
    @bryansmith1303 4 місяці тому +1

    I liked this video. Question: At the top you use - CRGB leds [nums_led] - Can you tell me what the CRGB is? Thanks

    • @programmingelectronics
      @programmingelectronics  4 місяці тому

      Great question! CRGB is an object in the FastLED library - it lets you control paraments of an an RGB led, so we are making an array of those objects so we can control the colors of the entire LED strip.
      He are some docs on it.
      github.com/FastLED/FastLED/wiki/Pixel-reference#crgb

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

    Easy to follow. Great video

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

    This is the best video of subject

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

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

  • @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?

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

    Excellently presented content!

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

      Thanks Scott!

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

      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.

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

    great Explanation

  • @m.s.idrischannel5655
    @m.s.idrischannel5655 3 місяці тому +1

    works great. thanks for your tutorials

  • @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!

  • @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.

  • @user-zy2kh2rp4m
    @user-zy2kh2rp4m 2 роки тому +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 🙏🙏

  • @christiane321
    @christiane321 4 місяці тому +1

    ooh I see now. Mahalo!

  • @mariaviklund4546
    @mariaviklund4546 7 місяців тому

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

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

    Thank you. Useful stuff.

  • @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.

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

    Creative video, thanks for sharing :)

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

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

  • @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.

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

    Great insight!!!! Thanx a lot.

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

    LOVE it!!

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

    Good tip!

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

    Thank you.

  • @KW-ei3pi
    @KW-ei3pi Рік тому

    Awesome. Thanks!

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

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

  • @stephanc7192
    @stephanc7192 5 місяців тому +1

    Great video

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

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

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

    Thank you!

  • @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.

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

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

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

    Very nice tutorial..

  • @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

  • @prachethire812
    @prachethire812 4 місяці тому

    Thanks ! , it worked.

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

    gracias !!

  • @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.

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

    Good info

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

    😮 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 .

  • @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.

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

    The 'LIKE' button has gone!

  • @TheHEALER1984
    @TheHEALER1984 2 роки тому +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  2 роки тому +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!

  • @abhishekkumarbhaugeeruthy8884

    your mama🤣🤣🤣🤣

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

    Clicked lol

  • @fooballers7883
    @fooballers7883 24 дні тому

    Thanks