MakerGram Logo

    MakerGram

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Users
    • Groups

    Error While writing Library for Gy521

    General Discussion
    4
    12
    1198
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • rafitc99
      rafitc99 last edited by

      I'm trying to make an Arduino library for GY521. Created .cpp and .h files and also completed the code. But I'm getting an error while calling library function via main code.

      look my code below or via project repo

      Accelometer:10:7: error: request for member 'getAcData' in 'goo', which is of non-class type 'Gy521()'
         goo.getAcData();
             ^~~~~~~~~
      Accelometer:11:7: error: request for member 'getGyData' in 'goo', which is of non-class type 'Gy521()'
         goo.getGyData();
      

      Accelometer.ino (main code):

      //#include <Wire.h>
      #include "Gy521.h"
      
      Gy521 goo();
      
      void setup(){
        Serial.begin(9600);
      }
      void loop(){
        goo.getAcData();
        goo.getGyData();
      }
      

      Gy521.cpp

      #include "Gy521.h"
      #include "Arduino.h"
      #include <Wire.h>
      
      Gy521::Gy521()
      {
        Wire.begin();
        Wire.beginTransmission(_MPU);
        Wire.write(0x6B); 
        Wire.write(0);    
        Wire.endTransmission(true);
      }
      
      void Gy521::getAcData(){
        Wire.beginTransmission(_MPU);
        Wire.write(0x3B);  
        Wire.endTransmission(false);
        Wire.requestFrom(_MPU,6,true);  
        AcX=Wire.read()<<8|Wire.read();    
        AcY=Wire.read()<<8|Wire.read();  
        AcZ=Wire.read()<<8|Wire.read();   
       
        Serial.print("Accelerometer: ");
        Serial.print("X = "); Serial.print(AcX);
        Serial.print(" | Y = "); Serial.print(AcY);
        Serial.print(" | Z = "); Serial.println(AcZ);  
      }
      void Gy521::getGyData(){
        Wire.beginTransmission(_MPU);
        Wire.write(0x43);  
        Wire.endTransmission(false);
        Wire.requestFrom(_MPU,6,true);  
         
        GyX=Wire.read()<<8|Wire.read();  
        GyY=Wire.read()<<8|Wire.read();  
        GyZ=Wire.read()<<8|Wire.read();
        
        Serial.print("Gyroscope: ");
        Serial.print("X = "); Serial.print(GyX);
        Serial.print(" | Y = "); Serial.print(GyY);
        Serial.print(" | Z = "); Serial.println(GyZ);
        Serial.println(" ");
        delay(100);
      }
      
      

      Gy521.h

      #ifndef Gy521_h
      #define Gy521_h
      
      #include "Arduino.h"
      class Gy521
      {
        public:
          Gy521();
          void getAcData();
          void getGyData();
          int16_t GyX,GyY,GyZ;
          int16_t AcX,AcY,AcZ;
              
        private:
          const int _MPU = 0x68;
      };
      
      
      
      #endif
      

      :- This is my first try to make an Arduino Library 🙂

      1 Reply Last reply Reply Quote 1
      • vishnumaiea
        vishnumaiea last edited by

        When you want to create an object of a class and it doesn't take in any parameters, then

        Gy521 goo;  //object declaration
        

        is enough. Then invoke the initialization function,

        goo.begin();  //initialization
        

        For that, you need to create an initialization function. You can copy the statements in your constructor there.

        rafitc99 1 Reply Last reply Reply Quote 1
        • rafitc99
          rafitc99 @vishnumaiea last edited by

          @vishnumaiea Thank you. I made the changes, it worked well.
          Next, I want to return 3 variables in getAcData() function. Is there any way to do this ? Can i access AcX,AcY,AcZ globally via main code.

          vishnumaiea 1 Reply Last reply Reply Quote 1
          • vishnumaiea
            vishnumaiea @rafitc99 last edited by

            @rafitc99 The member variables of a class can not be accessed without an accompanying object; that's the concept of a class. If you want to return three values, simply update the member variables AcX, Ac and AcZ, and access them as,

            Serial.println(goo.AcX);
            Serial.println(goo.AcY);
            Serial.println(goo.AcZ);
            
            rafitc99 1 Reply Last reply Reply Quote 2
            • rafitc99
              rafitc99 @vishnumaiea last edited by

              @vishnumaiea

              Serial.println(goo.AcX);
              Serial.println(goo.AcY);
              Serial.println(goo.AcZ);
              

              while using above code, I'm getting '0'. not updating,

              saheen_palayi 1 Reply Last reply Reply Quote 0
              • saheen_palayi
                saheen_palayi @rafitc99 last edited by

                @rafitc99 is it fixed ?,u found a solution?

                rafitc99 1 Reply Last reply Reply Quote 0
                • rafitc99
                  rafitc99 @saheen_palayi last edited by

                  @saheen_palayi Nop, while calling goo.AcX getting zero as output. not getting updated value.

                  saheen_palayi 1 Reply Last reply Reply Quote 0
                  • saheen_palayi
                    saheen_palayi @rafitc99 last edited by

                    @rafitc99 I dont think u can access those like that did you tried those lines after

                     goo.getAcData();
                     goo.getGyData();
                    
                    rafitc99 1 Reply Last reply Reply Quote 1
                    • rafitc99
                      rafitc99 @saheen_palayi last edited by

                      @saheen_palayi yeah! that was the problem. Now it's worked. Thank you @saheen_palayi and @vishnumaiea

                      salmanfaris 1 Reply Last reply Reply Quote 1
                      • salmanfaris
                        salmanfaris @rafitc99 last edited by

                        @rafitc99 What was the solution?

                        rafitc99 1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Recent Posts

                        • J

                          At Lintex, we understand that being a doctor means more than long hours and tough calls; it also means showing up every day ready to move, think, and care with confidence. That’s why we design scrubs for doctors that are built for real-life performance without compromising on comfort or style.

                          Our collection of doctor scrubs is crafted with breathable fabrics, smart tailoring, and functional features like strategically placed pockets, wrinkle resistance, and movement-friendly cuts. Whether you're making rounds, managing emergencies, or staying on your feet during surgeries, Lintex scrubs are made to support your every move.

                          We don't believe in one-size-fits-all. From classic V-necks to modern fits, we offer options that let you choose what works best for your body and your role. If you're looking for the best scrubs for doctors, you’re in the right place.

                          Join the Lintex community and discover the best scrubs for doctors that work as hard as you do.

                          Explore more at www.lintex.in or drop us a line at reachus@anvka.com

                          • read more
                        • J

                          I'm an Oral-Maxillofacial Surgeon working with a trauma hospital and academic setup in Delhi. We get our 3D models, from Curewith3D, a dedicated 3D lab equipped with FDM and SLA 3D printers, focused on presurgical planning and patient-specific modeling.

                          We routinely use 3D printed anatomical models, especially for complex facial reconstructions, TMJ cases, and orthognathic surgeries. They’re invaluable for surgical rehearsals, resident training, and most importantly, patient education. When patients can physically hold their jaw model and understand the procedure, consent becomes more informed and anxiety levels drop.

                          As for printing surgical instruments or implants, we’re cautious. While the 3D orthopedic implants we design are precise and patient-specific, their final manufacturing still goes through standard biocompatible grade processes. Like in most regions, concerns about sterilization, structural integrity, and litigation prevent experimental tools from entering the OR directly. That said, the potential for custom joint replacement implants and 3D knee replacement implants in underserved areas is enormous. We see 3D printing as a huge enabler in low-resource and humanitarian settings.

                          • read more
                        • D

                          Signal Hunt: An ESP-NOW Workshop & Treasure Hunt

                          Hello everyone! We’re planning on organizing a two-phase event that explores device-to-device communication using ESP-NOW protocol :

                          Workshop: Participants learn to build and program ESP32-based receivers with a web interface that directly exchange signal data using ESP-NOW for RSSI-based distance approximation.

                          Signal Hunt Competition: Equipped with these receivers, participants will track hidden ESP32 transmitters scattered around the campus, each with distinct point values.

                          Current hardware setup:
                          Reciever(one per team):
                          Esp32 ~ 360rs
                          9v battery = 20rs
                          9v battery clip= 5rs
                          buck converter (MP1584 or LM2596) ~ 45rs
                          Perfboard + male to female berg strip ~30rs
                          Total per reciever ~ 460rs
                          Transmitters :6
                          Components same as recievers = 460*6~2760rs

                          (using non-rechargeable batteries to reduce cost,
                          will using a 7805 voltage regulator IC be a viable way to reduce cost further?)

                          We’d love your suggestions on ways to simplify hardware, reducing the cost, secure partnerships and funding, or enhance the interactive elements. Thank you, looking forward to any ideas that can help make the event engaging and successful!

                          • read more
                        • M

                          RTA offers a diverse range of stylish apparel, including rta clothing staples like rta hoodie men, men's rta hoodie, and the sleek black rta hoodie. Their denim collection features must-haves such as rta denim pants, rta denim mens, rta denim jeans, rta skinny jeans, rta jeans mens, rta jeans, and rta denim shorts. Complete your look with rta shorts, rta shirts, rta t shirt, rta t shirt men, and cozy options like the rta sweatshirt. For a functional touch, add rta cargo pants to your wardrobe and create the ultimate rta outfit for any occasion.

                          • read more
                        • J

                          So today, I was reading about a kid who got a custom prosthetic arm printed like really. Holly molly! People are printing prosthetics nowadays! That’s when I stumbled upon Curewith3D, and wow, 3D printing in healthcare is on another level.

                          Apparently, I found out that they’re not just 3d printing limbs. They actually use patient-specific scans (like CT/MRI data) and some DICOM files to design prosthetics that fit the person’s body perfectly. Every angle, curve, and dimension is matched to the individual. No more bulky or uncomfortable fits.

                          What’s wild is how fast and affordable the process is. Instead of traditional molds and weeks of waiting, Curewith3D can design, print, and deliver a customized prosthetic in a fraction of the time.

                          I didn’t know 3D printing services could be this life-changing, and it's happening right here in India. It really makes you wonder what else we’re going to be printing next.

                          Anyone else heard of this or know someone who’s used a 3D printed prosthetic? Would love to hear more.

                          • read more
                        By MakerGram | A XiStart Initiative | Built with ♥ NodeBB
                        Copyright © 2023 MakerGram, All rights reserved.
                        Privacy Policy | Terms & Conditions | Disclaimer | Code of Conduct